Flask系列04--Flask的蓝图

flask蓝图

一.蓝图

蓝图(Blueprint),类似于实现django中路由分发那种感觉, 可以把Blueprint理解为不能被run的Flask对象

Blueprint实例化时需要的参数

基本使用

from flask import Blueprint
# 把Blueprint理解为 不能被 Run 的 Flask 对象
​
bp = Blueprint("bp",__name__,url_prefix="/user")  # url_prefix是加前缀  "bp"是蓝图的名字,必须要写
​
@bp.route("/bp",methods=["GET","Post"])
def my_bp():
    return "I am bp in user.py"

 另一个示例

from flask import Blueprint  # 导入 Flask 中的蓝图 Blueprint 模块
from flask import render_template

sv = Blueprint(
    "sv", 
    __name__,
    template_folder="sv_template",  
    static_folder="sv_static"  # 静态文件目录也是可以独立出来的
 )  
# 实例化一个蓝图(Blueprint)对象
# 每个蓝图都可以为自己独立出一套template模板文件夹,如果不写则共享项目目录中的templates

@sv.route("/svlist")
def view_list():
    return render_template("svlist.html")

二.蓝图结构

通过一个对学生信息在内存中进行增删改查的示例来说明蓝图结构

使用蓝图的基本结构, 其实和django中的差不多,其中

__init__.py

from flask import Flask
from .views import users,select,update,delete,add

def create_app():
    app = Flask(__name__)

    app.register_blueprint(users.users)
    app.register_blueprint(select.select)
    app.register_blueprint(update.update)
    app.register_blueprint(delete.delete)
    app.register_blueprint(add.add)
    return app

manage.py

from app01 import create_app
from app01 import settings

app = create_app()
app.config.from_object(settings.DebugSetting)
# app.config.from_object(settings.TestSetting)

if __name__ == '__main__':

    app.run()

三.操作注意

在这里将模版文件夹标记,就可在pycharm中自动提示html文件了

模版语言要选择Jinja2, 否则按tab无法自动补全模版语言

原文地址:https://www.cnblogs.com/robertx/p/10686440.html