前台蓝图
1、这里我们以创建前台蓝图为例,后面的文章会继续创建后台蓝图。首先在 app 文件夹下分别创建 static、templates、home 文件夹(包),用于存放静态文件、模板、前台模块。
2、接下来把前台的样式文件放入 static,在 home 里面创建 views.py 文件,把 manage.py 里面的
@app.route('/')
def index():
# session['name'] = 'holy' # 原有的这行代码直接删掉,仅用于测试 session
return 'Hello Clwy!'
剪切到 home/views.py 中,如下:
@app.route('/')
def index():
return 'Hello Clwy!'
注意:我们发现这里的 app 正在报错,是因为我们还没有创建对应的蓝图,没有蓝图对象,所以报错。接下来,我们来解决这个问题。
创建蓝图对象,在 home/__init__.py
中:
from flask import Blueprint # 引入蓝图模块
home_blue = Blueprint('home_blue', __name__) # 创建蓝图对象
然后在 home/views.py 中导入蓝图对象:
from . import home_blue # 导入蓝图对象
@home_blue.route('/') # 使用当前蓝图对象注册路由
def index():
return 'Hello Clwy!'
在 home/__init__.py
中导入当前模板
from flask import Blueprint
home_blue = Blueprint('home_blue', __name__)
from . import views # 导入当前模块
最后在 app/__init__.py
中注册蓝图,注意注释部分代码
from flask import Flask
from config import config
from flask_sqlalchemy import SQLAlchemy
from flask_session import Session
app = Flask(__name__)
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
db.init_app(app)
Session(app)
# 注册前台蓝图
from app.home import home_blue
app.register_blueprint(home_blue)
return app
测试,我们在 manage.py 中输出路由映射
from flask_script import Manager
from flask_migrate import MigrateCommand, Migrate
from app import create_app, db
app = create_app('development')
manage = Manager(app)
Migrate(app, db)
manage.add_command