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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
python单链表实现代码实例
Nov 21 Python
python正则表达式re模块详细介绍
May 29 Python
如何利用Fabric自动化你的任务
Oct 20 Python
详解Python使用tensorflow入门指南
Feb 09 Python
python3人脸识别的两种方法
Apr 25 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
Python 实现数组相减示例
Dec 27 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
python自动化调用百度api解决验证码
Apr 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
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
js 上传图片预览问题
2010/12/06 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
RequireJs的使用详解
2017/02/19 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
JS实现多功能计算器
2020/10/28 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
Python解惑之True和False详解
2017/04/24 Python
python实现批量修改文件名代码
2017/09/10 Python
Python版名片管理系统
2018/11/30 Python
浅析python的Lambda表达式
2019/02/27 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
技术学校毕业生求职信分享
2013/12/02 职场文书
家长对孩子评语
2014/01/30 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
校园运动会广播稿
2015/08/19 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers