在flask中使用蓝图将路由分开写在不同文件
来源:互联网 发布:项链淘宝店铺照片 编辑:程序博客网 时间:2024/06/02 15:47
Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。一个Blueprint 对象与Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的蓝图 。
Flask 中的蓝图为这些情况设计:
- 把一个应用分解为一个蓝图的集合。这对大型应用是理想的。一个项目可以实例化一个应用对象,初始化几个扩展,并注册一集合的蓝图。
- 以 URL 前缀和/或子域名,在应用上注册一个蓝图。 URL 前缀/子域名中的参数即成为这个蓝图下的所有视图函数的共同的视图参数(默认情况下)。
- 在一个应用中用不同的 URL 规则多次注册一个蓝图。
- 通过蓝图提供模板过滤器、静态文件、模板和其它功能。一个蓝图不一定要实现应用或者视图函数。
- 初始化一个 Flask 扩展时,在这些情况中注册一个蓝图。
Flask 中的蓝图不是即插应用,因为它实际上并不是一个应用——它是可以注册,甚至可以多次注册到应用上的操作集合。为什么不使用多个应用对象?你可以做到那样(见应用调度 ),但是你的应用的配置是分开的,并在 WSGI 层管理。
蓝图作为 Flask 层提供分割的替代,共享应用配置,并且在必要情况下可以更改所注册的应用对象。它的缺点是你不能在应用创建后撤销注册一个蓝图而不销毁整个应用对象。
以上内容来自Flask0.10.1文档测试项目结构:
user.py:
#coding:utf-8#userfrom flask import Blueprint, render_template, redirectuser = Blueprint('user',__name__)@user.route('/index')def index(): return render_template('user/index.html')@user.route('/add')def add(): return 'user_add'@user.route('/show')def show(): return 'user_show'
admin.py:
# coding:utf-8#admin.pyfrom flask import Blueprint,render_template, requestadmin = Blueprint('admin',__name__)@admin.route('/index')def index(): return render_template('admin/index.html')@admin.route('/add')def add(): return 'admin_add'@admin.route('/show')def show(): return 'admin_show'view.py:
# coding:utf-8from flask import Flask,request,render_templatefrom admin.admin import adminfrom user.user import userapp=Flask(__name__)app.register_blueprint(admin,url_prefix='/admin')app.register_blueprint(user, url_prefix='/user')if __name__ == '__main__': app.run()
阅读全文
0 0
- 在flask中使用蓝图将路由分开写在不同文件
- flask蓝图的使用
- flask蓝图的使用
- flask蓝图的使用
- 字符串处理--空格分开字符长并将分开后的字符串分别写入不同的文件中去
- 在VMWare中,使用软路由实现不同LAN互访
- 【Flask】在Flask中使用logger
- 【Flask】在Flask中使用HTTPS
- flask 蓝图
- flask 蓝图
- flask开发中蓝图与子域名
- python 多线程将大文件分开下载后在合并
- 在 Flask 中使用 Celery
- 在flask中使用WebSocket
- 在 Flask 中使用 Celery
- 将XSD文件中分开的元素,合并在一起
- 在不同的文件中使用Zend_Registry
- react中使用Link在不同路由之间进行参数传值
- flask用户验证
- hadoop学习之ZooKeeper
- 深入理解javascript原型和闭包(18)——完结
- ubuntu卸载安装软件
- 数据结构 — 冒泡排序以及其优化
- 在flask中使用蓝图将路由分开写在不同文件
- ES5
- 基于Canvas的画线动画效果
- 简单理解java中的宏常量
- 欢迎使用CSDN-markdown编辑器
- 17.11.20,web学习第七天,还有一年,努力吧青年
- 11.20 jQuery基础
- 千岛湖冰水救人,程序员见义勇为,手工点赞!
- Swift基础 可选