flask___蓝图的认识及使用
# blueprint 翻译过来的---》把项目分到多个py文件---》以后常用
-划分项目目录
通过蓝图创建一个博客首页的基本视图,代码如下:
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
浙公网安备 33010602011771号