flask___蓝图的认识及使用

蓝图

# blueprint 翻译过来的---》把项目分到多个py文件---》以后常用
-划分项目目录

 蓝图小项目目录划分(只有一个app)

大型项目-目录划分(多个app)

——————————————————————————

蓝图就是把我们应用目录的模块注册到Flask类,充当一个中间人的角色

通过蓝图创建一个博客首页的基本视图,代码如下:

from flask import Blueprint

bp = Blueprint('blog', __name__, url_prefix='/blog')

@bp.route('index/')
def index():
    return 'Hello Word'

1、首先引入了蓝图对象,这个Blueprint与Flask类是

from flask import Blueprint

2、实例化一个蓝图对象,需要两个必须参数,第一个是应用的名称,第二个__name__是该应用的位置,其他参数都是可选的,我们这里用关键字参数url_prefix='/blog'指定了 该应用的一个url的命名空间,和django的urls中的app_name类似,这个值会出现在该应用url之前,比如我们现在这个url访问的话应该是:

bp = Blueprint('blog', __name__, url_prefix='/blog')

3、创建了blog应用的一个视图,用蓝图实例来绑定route,把该url定义在该应用当中

@bp.route('index/')
def index():
    return render_template()

  

注册蓝图

上边我们都说了,这个应用通过蓝图创建,如果不去主项目注册的话,他是不会被运行的,这就要我们去工厂函数中注册蓝图!

首先,把该views文件引入到blog的__init__.py中,以便后续调用!

# app/blog/__init__.py
from .import views

  

最后,在项目目录的__init__.py中的工厂函数中通过app实例的提供的register_blueprint方法注册蓝图,代码如下:

def create_app(test_config=None):

    app = Flask(__name__, instance_relative_config=True)
    # ... 省略部分代码

    # 注册博客蓝图
    from app.blog import views as blog
    app.register_blueprint(blog.bp)

    return app

  

定义入口

在入口文件manage.py中引入一下代码,代码非常简单,不做过多解释

from RealProject import create_app

app = create_app()

# 当运行这个文件的时候才执行run()方法
if __name__ == '__main__':
    app.run(debug=True)

  

运行项目

在终端运行该文件即可成功启动项目,默认我们设置了run方法的debug模式为True,也就是开启了Flask的调试模式

py manage.py

 

 

 

 

 

 

 

 

 

posted @ 2024-03-05 15:53  拆尼斯、帕丁顿  阅读(27)  评论(0)    收藏  举报