flask的蓝图(blueprint)

1.新建目录结构
1184359-20180421214050328-2116777012.png

2.在蓝图模块admin下__init__.py加入以下(home同理)

from flask import Blueprint

admin = Blueprint('admin', __name__)

from . import views

3.在蓝图模块admin下views.py加入以下..测试(home同理)

from . import admin

@admin.route('/')
def index():
    return '测试2............', 200

4.在app下的__init__.py中加入

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


db = SQLAlchemy()
# ...


def create_app():
    app = Flask(__name__)

    # 导入配置文件
    app.config.from_object('app.settings')
    # ...

    # 初始化数据库
    db.init_app(app)
    # ...

    # 注册蓝图(最后一步)
    register(app)

    return app


def register(app):
    from .admin import admin
    from .home import home
    app.register_blueprint(admin, url_prefix='/admin')
    app.register_blueprint(home)

5.在app下的settings配置文件加入

SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1/xxx'

6.在app下的models.py加入

from datetime import datetime
from app import db

class People(db.Models):
    pass

7.在总目录下的执行文件manage.py下加入

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import create_app

# 此刻导入models.py下的db (app/__init__.py  ----> app/models.py -----> manage.py)
from app.models import db

# 创建app对象
app = create_app()

# 数据库迁移配置
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)

if __name__ == "__main__":
    manager.run()

8.models中表过多问题

1.新建app/models文件夹, 在其中的__init__.py 中加入db = SQLALchemy()
2.在app/models/admin.py和app/models/home.py 下 分别引入 from . import db
3.在app/__init__.py下引入from app.models import admin和from app.models import home和from app.models import db
**********************以后加入一个文件就引入一次*******************

4.   ... db.init(app) ...

9.执行命令

# 数据库迁移
python manage.py db init
python manage.py db migrate
python manage.py db upgrade

运行
python manage.py runserver

转载于:https://www.cnblogs.com/lilied/p/8424137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值