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中open函数的使用
Mar 01 Python
Python 装饰器深入理解
Mar 16 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
TensorFlow数据输入的方法示例
Jun 19 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
python实现对变位词的判断方法
Apr 05 Python
用python对oracle进行简单性能测试
Dec 05 Python
Spy++的使用方法及下载教程
Jan 29 Python
Python爬虫基础讲解之请求
May 13 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 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
农民C键的运用技巧
2020/03/04 星际争霸
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
python list语法学习(带例子)
2013/11/01 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Django的models中on_delete参数详解
2019/07/16 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python数值基础知识浅析
2019/11/19 Python
keras导入weights方式
2020/06/12 Python
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
六一儿童节标语
2014/10/08 职场文书
党员三严三实心得体会
2014/10/13 职场文书
失职检讨书大全
2015/01/26 职场文书
自荐信格式模板
2015/03/27 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript