python大佬养成计划----Flask蓝图

蓝图

以前咱们已经经过代码了解了一些Flask基本的用法,如今出现一个问题,咱们要作的功能愈来愈多,路由是否是都要放在run文件中呢?例如咱们在不一样的文件都定义了一些路由,若是想要访问他们,是否是要开启不少个不一样的服务呢?flask

Flask中提供了蓝图,专门用做Flask的模块化。app

Flask使用蓝图的概念来制做应用程序组件和支持应用程序内部或跨应用程序的通用模式。蓝图能够大大简化大型应用程序的工做方式,并为Flask扩展提供了在应用程序上注册操做的中心手段。Blueprint对象的工做方式与Flask应用程序对象相似,但实际上它不是一个应用程序。相反,它是如何构造或扩展应用程序的蓝图。模块化

总之,蓝图能够使咱们的程序更加模块化,不一样功能的路由能够放在不一样的模块下,最后集中到启动类中。函数

首先,新建一个flask项目文件,创建文件结构以下图所示:
图片描述url

主运行文件

from app.movie.view import movie as movie_bp
from app.tag.view import tag as tag_bp
from flask import Flask


if __name__ == '__main__':
    app = Flask(__name__)
    app.register_blueprint(tag_bp,url_prefix='/tag')
    app.register_blueprint(movie_bp,url_prefix='/movie')
    app.run(port=9099)

模块一:标签

全部的路由和视图函数依旧单独写在一个文件里面,这里起名view.pyspa

from flask import Blueprint


tag = Blueprint('tag',__name__)
@tag.route('/')
def index():
    return 'ok'

@tag.route('/add/')
def add():
    return 'tag add'

模块二:电影

全部的路由和视图函数依旧单独写在一个文件里面,这里起名view.pycode

from flask import Blueprint


movie = Blueprint('movie',__name__)
@movie.route('/')
def index():
    return 'ok'

@movie.route('/add/')
def add():
    return 'movie add'

运行结果
图片描述
图片描述对象

相关文章
相关标签/搜索