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
- Flask 用Blueprint实现模块化的应用
- 通过Blueprint进行模块化的Flask应用开发[转]
- 通过Blueprint进行模块化的Flask应用开发[转]
- flask使用Blueprint进行多模块应用的编写
- python flask,file structure ,blueprint简单应用
- Flask-Blueprint
- flask-Blueprint
- 使用Flask快速开发WEB应用-第二篇:Blueprint模块的应用
- flask 中的蓝图 blueprint 的理解
- flask 中的蓝图 blueprint 的理解
- 用蓝图实现模块化的应用
- flask Blueprint用法
- Flask之Blueprint
- Celery和Flask的结合(在Blueprint控制下的部署)
- flask蓝图(Blueprint)简单测试例子运行不成功的原因:注册时机不对
- gunicorn+gevent实现 flask web 应用的并行访问
- 用 Flask 来写个轻博客 (16) — MV(C)_Flask Blueprint 蓝图
- Python进阶(四十九)-初识Flask Blueprint
- Poj 1741 Tree
- select2 4.0.3 空记录时的处理
- python下图片相关 PIL 二维码
- jQuery中 wrap() wrapAll() 与 wrapInner()的区别
- Linux下SVN客户端使用教程(全)
- Flask 用Blueprint实现模块化的应用
- 4.2 结构类型——结构
- Leetcode日记(7)
- iOS开发中 常用枚举和常用的一些运算符(易错总结)
- Java 内部是如何判断Map中的两个键是否一样
- nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for propert
- 如何不让DataGridView自动生成列
- CocoaPods 导库时提示“Use the `$(inherited)` flag” or “Remove the build settings from the target”
- node.js 连接外网redis