赞
踩
在讲如何使用蓝图前,我们先看看蓝图的作用:
蓝图作用:
用于将项目模块化、方便大型项目管理
我们先新建一个blueprit_demo项目,例图如下:
为了方便讲解蓝图如何使用,我跟大家举个例子!假设我们要做一个大型的门户网站,里面有新闻版块、汽车版块、美食版块.....等版块,如果把所有版块都放在主app文件中,随着项目越做越大,网站项目维护就很蛋疼。为了方便管理呢,我们新建一个blueprint包,例图如下:
然后在该包下新建新闻(news.py)、汽车(car.py)、美食(food.py)版块,例图如下:
选择news.py文件,在该文件输入以下代码
- #从flask中导入蓝图
- from flask import Blueprint
-
- #实例化一个蓝图对象,第一个为蓝图名字,第二个参数为inport_name,跟flask项目中的inport_name一样
- news_bp = Blueprint("news",__name__)
-
- #news_bp用法跟app相似
- @news_bp.route("/list")
- def list():
- return "list page"
-
- @news_bp.route('/arctire')
- def arctire():
- return "arctire page"
-
OK,蓝图写好了,心急的小伙伴迫不及待的打开浏览器,输入127.0.0.1:5000/list,然后出现大大的几个字:Not Found!!嘿!!!我们不是写好了蓝图吗?为啥访问不了勒??原因就是我们写好了蓝图,并没有将蓝图注册到主app文件中。
既然知道了原因,我们就在主app文件(blueprint_demo.py)输入以下代码:
- #从news.py文件中导入news_bp
- from blueprint.news import news_bp
-
- #将news_bp注册到app中
- app.register_blueprint(news_bp)
blueprint_demo.py文件完整代码如下:
- from flask import Flask
-
- #从news.py文件中导入news_bp
- from blueprint.news import news_bp
-
- app = Flask(__name__)
-
- #将news_bp注册到app中
- app.register_blueprint(news_bp)
-
- @app.route('/')
- def index():
- return "index page"
-
- if __name__ == "__main__":
- app.run(debug=True)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
然后我们运行主app文件,打开浏览器输入http://127.0.0.1:5000/list,结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。