Flask 进阶

上篇文章里,我们对 Flask 进行了基础的了解,接下来我们将深入解析 FLask 框架的功能。

根据 MVT 模式调整 Flask 框架

首先创建 Flask 项目,将项目自带的 app.py 文件改成运行文件,将其中的功能模块剥离出来。

from flask_script import Manager
from utils.app import create_app


app = create_app()
manager = Manager(app=app)


if __name__ == '__main__':
    manager.run()

然后在工程目录创建配置文件夹 utils , 在 utils 下创建 __init__.pyapp.py 文件,打开 app.py 输入代码如下:

import os

from flask import Flask

def create_app():

    # 找到工程目录文件夹路径
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    # 配置模板文件夹路径
    templates_dir = os.path.join(BASE_DIR, 'templates')
    # 配置静态文件文件夹路径
    static_dir = os.path.join(BASE_DIR, 'static')

    # app是Flask的实例,它接收包或者模块的名字作为参数
    app = Flask(__name__,
                static_folder=static_dir,
                template_folder=templates_dir)

    # 返回app实例
    return app

在工程目录下创建模块及路由文件夹 App , 创建文件 __init__.pymodels.pyviews.py,打开文件 views.py ,输入代码如下:

from flask import Blueprint

student_blueprint = Blueprint('student', __name__)

@student_blueprint.route('/')
def index():
    return 'Hello World!'

views.py 文件是视图文件, 在上面代码里我们导入了 Blueprint, Blueprint 通过把实现不同功能的module分开,从而把一个大的 application 分割成各自实现不同功能的 module 其本质上来说就是让程序更加松耦合,更加灵活,增加复用性,提高查错效率,降低出错概率。 所以我们可以创建多个视图文件,通过 Blueprint 创建多个视图对象。

打开 utils 下的 app.py注册蓝图

import os

from flask import Flask
from App.views import student_blueprint

def create_app():

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    templates_dir = os.path.join(BASE_DIR, 'templates')
    static_dir = os.path.join(BASE_DIR, 'static')
    app = Flask(__name__,
                static_folder=static_dir,
                template_folder=templates_dir)

    # 注册蓝图
    app.register_blueprint(blueprint=student_blueprint, url_prefix='/student')

    return app

你可能感兴趣的:(python,Flask,学习笔记)