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 pdb调试方法分享
Jan 21 Python
Python中的Matplotlib模块入门教程
Apr 15 Python
python通过邮件服务器端口发送邮件的方法
Apr 30 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
浅析python协程相关概念
Jan 20 Python
python3判断url链接是否为404的方法
Aug 10 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Python实现aes加密解密多种方法解析
May 15 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
消息持续发送的完整例子
2006/10/09 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
Python实现爬取逐浪小说的方法
2015/07/07 Python
Django中提示消息messages的设置方式
2019/11/15 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
法律七进实施方案
2014/03/15 职场文书
小区文明倡议书
2014/05/16 职场文书
经济管理自荐书
2014/06/09 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
个人贷款收入证明
2014/10/26 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang