蓝图
# 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访问的话应该是:http://127.0.0.1:8000/blog/index/
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
标签:__,py,flask,app,蓝图,blog,url,05days From: https://www.cnblogs.com/wzh366/p/18054236