看完这篇文章,傻瓜都能学会蓝图基本使用!

在讲如何使用蓝图前,我们先看看蓝图的作用:

蓝图作用:

用于将项目模块化、方便大型项目管理

我们先新建一个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)

然后我们运行主app文件,打开浏览器输入http://127.0.0.1:5000/list,结果如下:

猜你喜欢

转载自blog.csdn.net/aimill/article/details/81095981