flask 中blueprint的使用笔记

2019-11-26  本文已影响0人  宽哥好

1. 使用蓝图的目的:

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

2. 基本语法:

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. 蓝图的模版文件的查找规则:

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

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

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

蓝图子域名实现

  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
    

    域名与子域名都要做映射

上一篇 下一篇

猜你喜欢

热点阅读