flask 中blueprint的使用笔记

1. 使用蓝图的目的:

结构更加清晰,模块化,可以将相同模块的代码放在同一个文件中,方便管理

2. 基本语法:

  • 在蓝图文件中导入 Blueprintfrom flask import Blueprint

  • 通过类Blueprint()定义蓝图对象

  • 在主 app 文件中注册蓝图 app.register_blueprint(蓝图对象)

3. 前缀

在定义蓝图对象时,可以通过指定参数 url_prefix指定前缀,那么在蓝图下的视图时也要加上这个前缀,如:

```python
from flask import Blueprint

# 创建蓝图
user_bp = Blueprint('user', __name__,url_prefix='/user')


# 定义蓝图(模块)的视图函数
@user_bp.route('/profile/')
def profile():
    return '个人中心页面'


@user_bp.route('/setting/')
def setting():
    return '个人设置页面'
```

那么可以通过 `/user/profile`来访问 个人中心页面

4. 蓝图的模版文件的查找规则:

  • 如果在项目中的 templates 文件夹中有相应的模版文件,就直接使用

  • 如果没有找到,就在定义蓝图的模版文件中查找,定义模版文件时,可以是相对路径,相对的是这个蓝图文件的文件夹

5. 蓝图中的静态文件寻找规则

* 在模版文件中加载静态文件,如果使用 `url_for("static",filename="xxx")`的方式,
会在项目的 `static` 文件夹下查找
* 如果使用 `url_for('bp.static',filename='xxx')` 会在 这个蓝图定义的
  `static_flolder` 这个文件中查找

6. url_for() 在有蓝图的app中的注意事项:

  • 在使用 url_for 反转在蓝图中的视图函数的时候,endpoint字符串中需要加上 蓝图的名字,比如:url_for('news.list') 得到的是 news 这个蓝图中的 list 这个视图函数的路由

  • 即使在 蓝图定义的视图函数中使用,也要指定蓝图的名字

蓝图子域名实现

  1. 使用蓝图技术

  2. 在定义蓝图时,可以通过 subdomain 指定 子域名,格式为: 子域名字符串.主域名

  3. 在主 app 文件中配置 app.config['SERVER_NAEME'],例如:

    app.config['SERVER_NAME'] = 'ck.com:5000'   # 配置域名
    
    

    注意:

    • IP 地址 没有子域名
    • localhost 也没有子域名
  4. 如果本地测试,需要修改 host 文件,例如:

    127.0.0.1 ck.com
    127.0.0.1 cms.ck.com
    

    域名与子域名都要做映射

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容

  • Flask视图函数高级 1.1 add_url_rule的用法 add_url_rule(rule,endpoin...
    成长之路丶阅读 888评论 0 1
  • 蓝图 Blueprint 模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过pyth...
    Gavininn阅读 48,494评论 1 12
  • 快速开始 在安装Sanic之前,让我们一起来看看Python在支持异步的过程中,都经历了哪些比较重大的更新。 首先...
    hugoren阅读 19,574评论 0 23
  • 解释1: 允许将应用组织为模块,每个模块有自洽的 MVC,开发者做些工作可以使模块间依赖尽可能少,必要时可以按 b...
    大诗兄_zl阅读 2,210评论 1 1
  • 一、什么是Blueprints blueprint定义了可应用于应用程序的视图、模板、静态文件和其他元素的集合。例...
    Threathunter阅读 2,106评论 0 0