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

  • 相关阅读:
    telnet
    lrzsz工具小问题处理
    1 Boost 安装简介
    klbostee/dumbo
    《笨办法学 C 语言》翻译项目
    关注生成器
    PHP学习之三:变量
    HTML5新书三章大纲分享
    C# 处理 google map 经纬度偏移量
    Jquery 的百度地图应用
  • 原文地址:https://www.cnblogs.com/robertx/p/10686440.html
Copyright © 2020-2023  润新知