flask中使用蓝图将路由分开写在不同文件实例解析


Posted in Python onJanuary 19, 2018

本文的内容主要是flask中使用蓝图将路由分开写在不同文件的相关介绍,具体如下。

Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。一个Blueprint 对象与Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的蓝图 。

Flask 中的蓝图为这些情况设计:

把一个应用分解为一个蓝图的集合。这对大型应用是理想的。一个项目可以实例化一个应用对象,初始化几个扩展,并注册一集合的蓝图。

以 URL 前缀和/或子域名,在应用上注册一个蓝图。 URL 前缀/子域名中的参数即成为这个蓝图下的所有视图函数的共同的视图参数(默认情况下)。

在一个应用中用不同的 URL 规则多次注册一个蓝图。

通过蓝图提供模板过滤器、静态文件、模板和其它功能。一个蓝图不一定要实现应用或者视图函数。

初始化一个 Flask 扩展时,在这些情况中注册一个蓝图。

Flask 中的蓝图不是即插应用,因为它实际上并不是一个应用——它是可以注册,甚至可以多次注册到应用上的操作集合。为什么不使用多个应用对象?你可以做到那样(见应用调度 ),但是你的应用的配置是分开的,并在 WSGI 层管理。

蓝图作为 Flask 层提供分割的替代,共享应用配置,并且在必要情况下可以更改所注册的应用对象。它的缺点是你不能在应用创建后撤销注册一个蓝图而不销毁整个应用对象。

以上内容来自Flask0.10.1文档

测试项目结构:

flask中使用蓝图将路由分开写在不同文件实例解析

user.py:

#coding:utf-8 
#user 
from flask import Blueprint, render_template, redirect 
user = 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.py 
from flask import Blueprint,render_template, request 
admin = 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-8 
from flask import Flask,request,render_template 
from admin.admin import admin 
from user.user import user 
app=Flask(__name__) 
app.register_blueprint(admin,url_prefix='/admin') 
app.register_blueprint(user, url_prefix='/user') 
if __name__ == '__main__': 
  app.run()

flask中使用蓝图将路由分开写在不同文件实例解析

总结

以上就是本文关于flask中使用蓝图将路由分开写在不同文件实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

flask使用session保存登录状态及拦截未登录请求代码

浅谈flask截获所有访问及before/after_request修饰器

flask中主动抛出异常及统一异常处理代码示例

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
python练习程序批量修改文件名
Jan 16 Python
bpython 功能强大的Python shell
Feb 16 Python
Python实现修改IE注册表功能示例
May 10 Python
python读写csv文件方法详细总结
Jul 05 Python
Python的条件锁与事件共享详解
Sep 12 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
vscode调试django项目的方法
Aug 06 Python
Python利用命名空间解析XML文档
Aug 10 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
python模拟事件触发机制详解
Jan 19 #Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 #Python
简单谈谈python中的lambda表达式
Jan 19 #Python
python使用logging模块发送邮件代码示例
Jan 18 #Python
zookeeper python接口实例详解
Jan 18 #Python
Python获取当前函数名称方法实例分享
Jan 18 #Python
Python AES加密实例解析
Jan 18 #Python
You might like
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Python中的装饰器用法详解
2015/01/14 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Selenium的使用详解
2018/10/19 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
精彩的广告词
2014/03/19 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
党支部对照检查材料
2014/08/25 职场文书
交通事故和解协议书
2015/01/27 职场文书
高效课堂教学反思
2016/02/24 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis