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 相关文章推荐
Python实现图像几何变换
Jul 06 Python
python之Socket网络编程详解
Sep 29 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
python简单贪吃蛇开发
Jan 28 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python中使用input()函数获取用户输入值方式
May 03 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
python 远程执行命令的详细代码
Feb 15 Python
Python进程间的通信之语法学习
Apr 11 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
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
python psutil库安装教程
2018/03/19 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
PyQt5实现画布小程序
2020/05/30 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
计算机专业个人求职自荐信
2013/09/21 职场文书
三年级学生评语
2014/04/23 职场文书
班级心理活动总结
2014/07/04 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
停车位租赁协议书
2014/09/24 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
店长岗位职责
2015/02/11 职场文书
慰问信模板
2015/02/14 职场文书
通用员工手册范本
2015/05/14 职场文书
治庸问责工作总结
2015/08/11 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书