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读写unicode文件的方法
Jul 10 Python
Python之re操作方法(详解)
Jun 14 Python
Python3 中文文件读写方法
Jan 23 Python
从django的中间件直接返回请求的方法
May 30 Python
python计算日期之间的放假日期
Jun 05 Python
Puppeteer使用示例详解
Jun 20 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
Nov 29 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
基于Python把网站域名解析成ip地址
May 25 Python
python和opencv构建运动检测器的实现
Mar 03 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脚本数据库功能详解(中)
2006/10/09 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
php简单图像创建入门实例
2015/06/10 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
php实现文件预览功能
2017/05/23 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Django配置文件代码说明
2019/12/04 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python3.7调试的实例方法
2020/07/21 Python
python 如何设置守护进程
2020/10/29 Python
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
运动会解说词100字
2014/01/31 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
教研活动主持词
2015/07/03 职场文书
德能勤绩工作总结
2015/08/11 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android