Flask 用Blueprint实现模块化的应用

来源:互联网 发布:k3帐套管理数据库设置 编辑:程序博客网 时间:2024/05/24 20:07

在一个大型项目中,肯定会有很多模块组成,比如一个网络管理系统可能有流量运营模块,实时分析模块,故障预警模块等。我们可以利用Flask Blueprint 实现每个模块的功能进行独立的开发与管理,后面的实践案例主要体现Buleprint以下功能
1. 可以独立管理网页的静态文件,如js,css,图片等,即可以指定单纯的静态路径,同时也可能指定模版的路径。
2. 方便模块整合,无耦合。

案例工程结构:

>netmange   #工程文件夹 app.py     #启动入口>netflow    #netflow 模块 views.py   #netflow 路由 >assets    #netflow 静态文件 >templates #netflow templates

第一个Blueprint案例 (netmange/netflow/views.py 的源码)

# -*- coding: utf-8 -*-from flask import Blueprint, render_template, abortfrom jinja2 import TemplateNotFoundnetflow_manager = Blueprint("netflow", __name__, static_folder="assets",template_folder='templates')#这是 app设置的方式:app = Flask(__name__, static_folder='', template_folder='')#这行设置这个项目的静态根目录和模版目录,直接暴露assets文件夹为静态@netflow_manager.route("/show", methods=['GET'])def show():    return "show !"

启动入口(netmange/app.py 的源码)

# -*- coding: utf-8 -*-from flask import Flaskfrom netmange.netflow.views  import netflow_managerapp = Flask(__name__)app.register_blueprint(netflow_manager)@app.route("/", methods=["GET"])def index():    return "index !"if __name__ == '__main__':    app.run(debug=True, host='127.0.0.1', port=7888,threaded=True) #此处 threaded=True 为多线程启动

启动后,浏览器输入http://127.0.0.1:7888/show 就可以看到show
!的显示,为了验证设置的静态文件路径和模版路径是否正确,可自行添加文件在netmange/netflow/assets
和netmange/netflow/templates 里面。

0 0
原创粉丝点击