flask结构设计blueprint应用举例

|--app

  |--__init__.py

  |--main

    |--__init__.py

    |--views.py

  |--static

  |--templates

  |--models.py

|--manage.py

mian/init.py

扫描二维码关注公众号,回复: 7843730 查看本文章
# main目录:主业务逻辑的路由和视图
# @Usage    : 初始化主业务逻辑
from flask import Blueprint

main = Blueprint('main', __name__)
from . import views

main/views.py

# @Usage    : 主业务逻辑中的视图和路由的定义
from flask import render_template
# 导入蓝图程序,用于构建路由
from . import main
# 导入db,用于操作数据库
from .. import db
# 导入实体类,用于操作数据库
from ..models import *


@main.route('/')
def main_index():
    categories = Category.query.all()
    topics = Topic.query.all()
    return render_template('index.html', params=locals())

app/init.py

# 主要工作:
# 1.构建Flask应用及各种配置
# 2.构建SQLAlchemy的应用
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql

pymysql.install_as_MySQLdb()
db = SQLAlchemy()


def create_app():
    app = Flask(__name__)
    app.config['DEBUG'] = True
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]:3306/xxx'
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    app.config['SECRET_KEY'] = 'INPUT A STRING'
    db.init_app(app)
    # 将main蓝图程序与app关联到一起,这样使app识别main程序包中的路由
    from app.main import main as main_blue_print
    app.register_blueprint(main_blue_print)
    from app.user import user as user_blue_print
    app.register_blueprint(user_blue_print)
    return app

app/models.py

# @Usage    : 与当前项目相关的模型文件,即所有的实体类
from . import db

manage.py

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run()

猜你喜欢

转载自www.cnblogs.com/wayne-tou/p/11809916.html