基于Flask原始模板的二级拆分
1、Manager
from flask_script import Manager
from App import create_app
from App.ext import models
app = create_app()
manager = Manager(app=app)
models.init_app(app)
if __name__ == '__main__':
manager.run()
2、Views
#__init__
from .first_blue import blue
from .second_blue import second
# def init_route(app):
# @app.route('/')
# def hello_world():
# return 'Hello World!'
#
# @app.route('/hello/')
# def hello():
# return 'Hello world'
#
# @app.route('/hi/')
# def hi():
# return 'Hi world'
from .third_blue import third
def init_view(app):
app.register_blueprint(blue)
app.register_blueprint(second)
app.register_blueprint(third)
#first_blue
from flask import Blueprint, render_template
from App.models import models, User
blue = Blueprint('blue',__name__)
@blue.route('/')
def index():
# return '我是蓝图的主页'
return render_template('index.html', msg='这天气适合睡觉')
@blue.route('/createdb/')
def createdb():
models.create_all()
return '创建成功'
@blue.route('/adduser/')
def add_user():
user = User()
user.username = 'Tom'
user.save()
# models.session.add(user)
# models.session.commit()
return '创建成功'
#second_blue
from flask import Blueprint
second = Blueprint('second', __name__)
@second.route('/hello/')
def hello():
return 'Second Blue'
#third_blue
from flask import Blueprint
third = Blueprint('third', __name__)
@third.route('/hi')
def hi():
return 'Hi 我是第三页'
3、App
#__init__
from flask import Flask
from App.ext import init_ext
from App.views import init_view
def create_app():
app = Flask(__name__)
# app.register_blueprint(blue)
# app.register_blueprint(second)
#url 数据库+驱动://用户名:密码@主机:端口/具体哪一个库
# app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///sqlite.db"
# app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
#连接mysql
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@localhost:3306/GP1HelloFlask'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
init_ext(app)
init_view(app=app)
return app
上述,我分别连接了两个数据库。分别是sqlite、mysql
#ext
from flask_sqlalchemy import SQLAlchemy
models = SQLAlchemy()
def init_model(app):
models.init_app(app=app)
def init_ext(app):
pass
#models
from App.ext import models
class User(models.Model):
id = models.Column(models.Integer, primary_key=True)
username = models.Column(models.String(16))
def save(self):
models.session.add(self)
models.session.commit()