• Flask蓝图


    Flask蓝图

    概述:蓝图分为两种方式,按照功能划分,与按照结构划分。

    1.小蓝图

    说明:按照功能划分蓝图。

    在视图函数中创建多个 py 文件,每个 py 文件中的视图函数都可以注册到蓝图中;

    目录结构如图所示:

    image-20220713222802247

    manage.py 为启动文件:

    # -*- coding: utf-8 -*-
    from pythonProject import create_app
    
    app = create_app() # 调用文件创建 app
    
    if __name__ == '__main__':
        app.run()
    

    pythonProject /__init__.py文件是包的标志文件。通常说的导入一个包即为导入它的__init__.py文件;因此我们只需要在__init__.py中创建对应的 app 即可。

    from flask import Flask
    from .views.account import ac_blueprint
    
    def create_app():
        app = Flask(__name__)
        app.register_blueprint(ac_blueprint,url_prefix = '/web')
        # /web 相当于路由分发的前置
        return app
    

    在小蓝图内编写视图函数

    # -*- coding: utf-8 -*-
    from flask import Blueprint
    
    ac_blueprint = Blueprint('ac',__name__)
    
    # 将路由注册到蓝图内
    @ac_blueprint.route('/f1')
    def func():
        return "f1"
    

    image-20220713222550313

    2.大蓝图

    说明:按照结构划分蓝图。

    目录结构

    补充:apps 有的时候也可能是与项目名称相同。

    image-20220713230849014

    # -*- coding: utf-8 -*-
    from apps import create_app
    
    app = create_app()
    
    if __name__ == '__main__':
        app.run()# 启动文件
    

    创建 app 函数,注册蓝图。

    from flask import Flask
    from .account import account
    from .admin import admin
    
    def create_app():
        app = Flask(__name__)
        app.config.from_object('config.settings') # 加载配置文件
        app.register_blueprint(account)# 注册蓝图
        app.register_blueprint(admin) # 注册蓝图
        return app
    

    在每个项目中创建蓝图

    # -*- coding: utf-8 -*-
    from flask import Blueprint
    admin = Blueprint("ad",__name__)
    
    
    # -*- coding: utf-8 -*-
    from flask import Blueprint
    account = Blueprint("ac",__name__,template_folder='templates') 
    # 创建蓝图,并指定相关的参数,更加具体的参数可以参考源码示例
    
    from .views import user
    # 注意需要写到蓝图对象下面,不然导入的时候蓝图对象不会被加载到内存
    

    源码示例

    image-20220713231835448

    蓝图中视图函数的写法

    # -*- coding: utf-8 -*-
    from flask import render_template
    from .. import account # 导入蓝图,因此需要在蓝图被创建后将视图模块导入。
    
    @account.route('/login')
    def login():
        return render_template('login.html')
    

    相关 html 文件。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>内部登录</h1>
    </body>
    </html>
    

    继续努力,终成大器。

  • 相关阅读:
    基于C语言的高斯曲线拟合原理以及实现【转】
    高斯曲线拟合原理及实现
    软件测试Lab2————用selenium进行自动化测试
    软件测试作业四 —— 课后习题七及扩展
    软件测试作业三—— 上机实验判断三角形的类型
    软件项目管理作业一 —— 描述项目
    软件测试作业二 —— 对于Faults,Errors,Failures的认识的习题
    软件测试作业一 —— 记录我遇到的项目error
    The introduction about my project.
    课程表WPF制作 学习步骤三
  • 原文地址:https://www.cnblogs.com/Blogwj123/p/16475980.html
Copyright © 2020-2023  润新知