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无法自动补全模版语言