flask blueprints
flask blueprints
1. flask blueprints
蓝图是一种网页模板的组合,可以方便的注册到flask中。
蓝图可以在文件中声明,也可以在包中声明,一般而言推荐在包中声明(下文如是)。
1.1. 基本使用
声明多个蓝图后的目录结构:
app/
bluep #蓝图文件夹1
blueo #蓝图文件夹2
app.py
蓝图声明案例:
__init__.py
from flask import Blueprint
blue_t = Blueprint('blue_t', __name__)
from . import views
views.py
#coding:utf-8
__author__ = 'sss'
……
from . import blue_t
@blue_t.route('/')
@blue_t.route('/index')
def index():
#print(blue_t.template_folder)
#print(blue_t.root_path)
return render_template('bluep/index.html', title='我的', user=user, posts=posts)
# 登录
@blue_t.route('/login', methods=['GET', 'POST'])
def login():
…
@blue_t.route('/lougout')
def logout():
logout_user()
return redirect(url_for('blue_t.index'))
@blue_t.errorhandler(404)
def error_handle(error):
return render_template('error/404.html')
注册:app.py
from .bluep import blue_t as blueprint_test
app.register_blueprint(blueprint_test, url_prefix='/blue')
访问:
http://127.0.0.1:9000/blue/index
url_prefix声明了附加路径。
1.2.
常用参数
1.2.1.
资源路径
蓝图的资源路径从它的__name__参数中推导而来。
可以通过Blueprint.root_path属性查看。
1.2.2.
static files
admin = Blueprint('admin', __name__, static_folder='static')
1.2.3.
templates folder
蓝图有两种组织形式
- 蓝图有自己的资源文件夹:
- 所有蓝图共用一个资源文件夹:
主要的不同是template_folder参数设置的不同。
- 有自己的资源文件夹
蓝图需要建在一个目录下
blue_t = Blueprint('blue_t', __name__, template_folder=r'templates\bluep')
这时蓝图会去app\bluep\templates\bluep下寻找模板文件。
- 共用原始资源文件夹
蓝图不需要建在目录下
但需要注意写法的不同:render_template(‘bluep/index.html’)
这时蓝图会去app\templates\bluep目录下寻找模板文件
需要注意的是在模板文件中引用的其它模板文件如未指明路径,仍会在app\templates下寻找。
资源目录可通过属性blue.root_path查看。template_folder会附加在后部。
资源目录可以是绝对路径也可以是相对路径,但蓝图的资源目录级别是低于应用资源目录的。
1.2.4.
url_for
蓝图的endpoint可以理解为:
蓝图名.函数名
url_for是通过endpoint查询url地址,然后找视图函数
return redirect(url_for('blue_t.index'))
如果在同一蓝图下也可以这样:
url_for('.index')
flask blueprints的更多相关文章
- Inside Flask - flask.__init__.py 和核心组件
Inside Flask - flask.__init__.py 和核心组件 简单的示例 首先看看一个简单的示例.使用 Flask ,通常是从 flask 模块导入 Flask . request 等 ...
- [Python]Flask构建网站分析应用
原文Saturday morning hacks: Building an Analytics App with Flask - 由orangleliu友情翻译 ,主要是通过埋点技术来实现web网页的 ...
- Flask源码阅读-第四篇(flask\app.py)
flask.app该模块2000多行代码,主要完成应用的配置.初始化.蓝图注册.请求装饰器定义.应用的启动和监听,其中以下方法可以重点品读和关注 def setupmethod(f): @setupm ...
- flask基础之蓝图的使用(七)
前言 关于蓝图是什么?或为什么使用蓝图的详细介绍,官方文档讲的很详细,不再赘述.简单来说,在大型的应用中,我们不想视图函数显得杂乱无章,难以维护,将众多的视图函数按照Api的设计规则进行切割是一个好方 ...
- How Flask Routing Works
@How Flask Routing Works The entire idea of Flask (and the underlying Werkzeug library) is to map UR ...
- Awesome Flask
Awesome Flask A curated list of awesome Flask resources and plugins Awesome Flask Framework Admin i ...
- Awesome Flask Awesome
A curated list of awesome Flask resources and plugins Awesome Flask Framework Admin interface Authen ...
- web开发工具flask中文英文书籍-持续更新
web开发工具flask中文英文书籍-持续更新 python测试开发_AI命理关注 0.9222018.11.10 07:48:43字数 625阅读 885 python测试开发项目实战-目录 pyt ...
- Flask 教程 第十五章:优化应用结构
本文翻译自The Flask Mega-Tutorial Part XV: A Better Application Structure 这是Flask Mega-Tutorial系列的第十五部分,我 ...
随机推荐
- 第一struts2程序
今天学习了第一个struts2程序 第一步建立一个java web程序 第二步 加入jar包 第三步 添加两个jsp文件 login.jsp和result.jsp文件 login.jsp 在body部 ...
- C#初识LINQ
什么是LINQ 长期以来,开发社区形成以下的格局: 1.面向对象与数据访问两个领域长期分裂,各自为政. 2.编程语言中的数据类型与数据库中的数据类型形成两套不同的体系,例如: C#中字符串用strin ...
- CSS-文本溢出省略号表示
前提条件是所引用的元素是块级元素,因为使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端 单行溢出处理: .text-overflow{ overflow: hidden; t ...
- Visual Studio Code打不开
1.win+R 2.输入cmd 3.输入netsh winsock reset然后就可以打开了,如果依然打不开就重启电脑试试
- 【代码学习】PYTHON 闭包
一.闭包 在函数内部再定义一个函数,并且这个函数用到了外边函数的变量 在函数里定义一个函数,不会默认被执行 def test(number): print("-----1-----" ...
- spring 基于XML的申明式AspectJ通知的执行顺序
spring 基于XML的申明式AspectJ通知的执行顺序 关于各种通知的执行顺序,结论:与配置文件中的申明顺序有关 1. XML文件配置说明 图片来源:<Java EE企业级应用开发教程&g ...
- 吴裕雄 人工智能 java、javascript、HTML5、python、oracle ——智能医疗系统WEB端智能分诊代码简洁版实现
<%-- Document : getInfo Created on : 2018-10-7, 21:36:37 Author : acer --%> <%@page import= ...
- Rsync+inotify数据同步
安装环境 备份服务器端:CentOS7,IP:192.168.1.100 备份客户端:CentOS7,IP:192.168.1.200 服务器端Rsync服务部署 1.安装程序包 # yum –y i ...
- 【C语言】计算N名同学的某门功课的平均成绩
分析: 循环输入number只童鞋的成绩,累加为sum,最后输出sum/number即可! 代码: #include<stdio.h> int main() { , score;//sco ...
- P3368 (模板)树状数组2
借这个题学新姿势,这个题需要利用差分才能AC,普通树状树有3个点过不了. 差分原理(参考题解区大佬): 一个例子,一组数据 $ a[] = { 1, 5, 4, 2, 3 } $,差分后得到 $ b[ ...