0

在此之前,我已经构建了一些小型 Flask 应用程序,并且我真的很喜欢这个过程。现在我正在向 Flask 应用程序添加一个管理部分,我正在寻找一些指导。

当前目录结构如下所示:

├── Makefile
├── Procfile
├── app.py
├── requirements.txt
├── static
│   ├── css
│   ├── fonts
│   ├── img
│   └── js
└── templates
    ├── about.html
    ├── base.html
    ├── contact.html
    └── index.html

我的 app.py 文件如下所示:

import os
from flask import Flask, render_template

app = Flask(__name__)
app.debug = True


# MAIN APPLICATION
@app.route('/')
@app.route('/work/<gallery>/')
def index(gallery='home'):
    return render_template('index.html', gallery=gallery)


@app.route('/views/<view>/')
def view(view):
    return render_template(view + '.html')


@app.route('/data/<gallery>/<size>/')
def data(gallery='home', size='md'):
    data = '[\
        {"image": "/static/img/photos/md/img_1.jpg","color": "white"},\
        {"image": "/static/img/photos/md/img_2.jpg","color": "white"},\
        {"image": "/static/img/photos/md/img_3.jpg","color": "black"}\
        ]'
    return data


if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

我做了一些研究,发现Blueprints 框架Flask-Admin似乎可以一起工作。有没有人有可能更有效或更容易设置的替代建议?

4

1 回答 1

1

蓝图允许您将功能分组到独立的模块中。

如果您觉得您的服务非常小,则无需使用蓝图 - 您可以向 Flask 应用程序添加路由,就像您在示例中所做的那样。

但是,如果应用程序变得更大,最好使用蓝图将其拆分为更小的部分。在您的示例中,“工作”是第一个可能的蓝图,“视图”是另一个,等等。

Flask-Admin 允许您构建管理界面 a-la Django admin。你如何构建应用程序的其余部分并不重要——你添加 Flask-Admin,它就可以工作。

于 2013-03-15T08:01:18.973 回答