Flask 第五话之模块化 -- 蓝图

允我心安 提交于 2020-02-26 09:38:22

一、蓝图定义

如果我们将所有的Flask的请求方法都写在同一个文件下的话,非常的不便于我们的代码的管理和后期的功能代码的添加,简单来说蓝图就是实现一个模块化。

二、基本使用

1.新建目录views,在views文件夹中创建模块user,user代码如下

# 第一步:导入蓝图
from flask import Blueprint

# 第二步:实例化user_bt蓝图类   url_prefix ==> 指定url前缀
user_bt = Blueprint('user',__name__,url_prefix='/u')

# 第三步:写视图函数
@user_bt.route('/profile/')
def Profile():
    return '个人中心'

@user_bt.route('/settings/')
def settings():
    return '设置页面'

2.在app中注册蓝图

from flask import Flask

"""
用户模块 ===》user_bt
新闻模块
"""

# 第四步:导入模块
from view import user,news
# 第五步:注册蓝图到app中
app.register_blueprint(user.user_bt)
app.register_blueprint(news.news_bt)


@app.route('/')
def index():
    return '首页'


if __name__ == '__main__':
    app.run()

 3.模板路径

# 第二步:实例化user_bt蓝图类   url_prefix ==> 指定url前缀
user_bt = Blueprint(
    'user',
    __name__,
    url_prefix='/u',
    # 指定模板路径:默认在当前user.py文件路径
    # 1、如果不设置参数则找template文件夹
    # 2、如果相同名字的html在template和指定路径中同时存在,则以tempalte优先
    template_folder='../page/'
)

# 第三步:写视图函数
@user_bt.route('/profile/')
def Profile():
    return render_template('profile.html')

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!