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

蓝图有两种组织形式

  1. 蓝图有自己的资源文件夹:
  2. 所有蓝图共用一个资源文件夹:

主要的不同是template_folder参数设置的不同。

  1. 有自己的资源文件夹

蓝图需要建在一个目录下

blue_t = Blueprint('blue_t', __name__, template_folder=r'templates\bluep')

这时蓝图会去app\bluep\templates\bluep下寻找模板文件。

  1. 共用原始资源文件夹

蓝图不需要建在目录下

但需要注意写法的不同: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的更多相关文章

  1. Inside Flask - flask.__init__.py 和核心组件

    Inside Flask - flask.__init__.py 和核心组件 简单的示例 首先看看一个简单的示例.使用 Flask ,通常是从 flask 模块导入 Flask . request 等 ...

  2. [Python]Flask构建网站分析应用

    原文Saturday morning hacks: Building an Analytics App with Flask - 由orangleliu友情翻译 ,主要是通过埋点技术来实现web网页的 ...

  3. Flask源码阅读-第四篇(flask\app.py)

    flask.app该模块2000多行代码,主要完成应用的配置.初始化.蓝图注册.请求装饰器定义.应用的启动和监听,其中以下方法可以重点品读和关注 def setupmethod(f): @setupm ...

  4. flask基础之蓝图的使用(七)

    前言 关于蓝图是什么?或为什么使用蓝图的详细介绍,官方文档讲的很详细,不再赘述.简单来说,在大型的应用中,我们不想视图函数显得杂乱无章,难以维护,将众多的视图函数按照Api的设计规则进行切割是一个好方 ...

  5. How Flask Routing Works

    @How Flask Routing Works The entire idea of Flask (and the underlying Werkzeug library) is to map UR ...

  6. Awesome Flask

    Awesome Flask  A curated list of awesome Flask resources and plugins Awesome Flask Framework Admin i ...

  7. Awesome Flask Awesome

    A curated list of awesome Flask resources and plugins Awesome Flask Framework Admin interface Authen ...

  8. web开发工具flask中文英文书籍-持续更新

    web开发工具flask中文英文书籍-持续更新 python测试开发_AI命理关注 0.9222018.11.10 07:48:43字数 625阅读 885 python测试开发项目实战-目录 pyt ...

  9. Flask 教程 第十五章:优化应用结构

    本文翻译自The Flask Mega-Tutorial Part XV: A Better Application Structure 这是Flask Mega-Tutorial系列的第十五部分,我 ...

随机推荐

  1. 单机架设传奇服务器第47课:定时器OnTimer功能详解

    传奇定时器OnTimer功能详解(泡点.时间触发.任务活动) 定时器功能,是服务端中非常常见的一种功能,常见如:泡点脚本.赌博脚本,任务活动指定时间刷怪,时间触发一些都需要用到OnTimer功能,定时 ...

  2. 论STA | POCV/SOCV 对lib 的要求 (4)

    在芯片制造过程中的工艺偏差由global variation 和local variation 两部分组成. 在集成电路设计实现中,global variation 用PVT 跟 RC-corner ...

  3. SpringAOP学习之5种通知

    一.Spring的AOP分为以下5种类型通知 ①前置通知(Before):在连接点执行前执行该通知 ②正常返回通知(AfterReturning):在连接点正常执行完后执行该通知,若目标方法执行异常则 ...

  4. Hadoop3.1.1源码Client详解 : Packet入队后消息系统运作之DataStreamer(Packet发送) : 主干

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 在上一章(Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立) 我们提到, ...

  5. js-秒数转为XX时XX分XX秒(用于计算剩余时间或倒计时)

    export default { data() { return { hours: null, minute: null, second: null } }, methods: { // 秒数 转为 ...

  6. Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

    Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...

  7. N个数求和(PTA)

    这题多输出了一个空格,卡了半天... leetcode刷多了,后遗症 这题可以用scanf("%lld/%lld"),直接读入,不过我用了stoll,也就是stoi,string ...

  8. NOIP-- 模拟-----机器

    机器翻译 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...

  9. Jmeter_选项_函数助手_RandomString的用法

    1.用处:测试账户注册可以通过随机生成数实现,而不需要Excel手动输入, 缺点:随机生成数可能会重复 优点:不需要使用CSV config 或者excel ,txt格式 2.举例:之前我们通过CSV ...

  10. 牛客小白赛4 C题

    乘法逆元: 一个数a 乘上 b,在mod之后再还原成本来的数 a 这里就要用到乘法逆元,(a*b)%mod*inv(b,mod)==a ll exgcd(ll a,ll b,ll &x,ll ...