Bootstrap

Flask 案例

创建news,根目录下创建settings文件 --- config.py文件,编写配置项,配置项必须大写

class DeFaultConfig:
    SECRET_KEY = '*******'
    SQLALCHEMY_DATABASE_URI = ''                                                                                      
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 追踪数据的修改信号
    SQLALCHEMY_ECHO = True  # 是否在控制台打印输出sql语句
    JSON_AS_ASCII = False

class DevConfig(DeFaultConfig):
        # 数据库类型+数据库操作引擎://用户名:密码@主机名:端口/数据库名
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]:3306/xxxxx' 
    

    根目录下创建views 文件---  users.py文件

from flask import Blueprint
from flask_restful import Api,Resource

user_bp = Blueprint('user_bp',__name__,url_prefix='/users')

api = Api(user_bp)                      #实例化路由收集器


from models.model import UserModel,Stu,Sub
from flask_restful import marshal,fields
#创建类视图
class UserView(Resource):
    def get(self):
        pass
api.add_resource(UserView,'/user')          #添加路由 完整地址/users/user

app.py

from create_app import create_app
from settings.config import DevConfig

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

create_app.py

from flask import Flask
from views.users import user_bp
from models.model import db

def create_app(config):
    flask_app = Flask(__name__)
    flask_app.config.from_object(config)        #加载配置项
    flask_app.register_blueprint(user_bp)       #注册蓝图
    db.init_app(flask_app)                       # 绑定db
    return flask_app

    根目录下创建models 文件---  model.py文件

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()               #实例化数据库连接对象
            
 #创建模型如下

class UserModel(db.Model):            
    id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='ID')
    name = db.Column(db.String(32), nullable=False, default='', comment='用户名')
    age = db.Column(db.Integer,default=0,comment='年龄')
    balance = db.Column(db.DECIMAL(10,2),comment='资产')

manage.py

from flask_script import Manager
from flask_migrate import MigrateCommand,Migrate
from app import app
from models.model import db

manage = Manager(app)                           #实例化命令行管理对象
migrate = Migrate(app,db)                       #实例化迁移执行类
manage.add_command('db',MigrateCommand)         #给命令行管理对象添加一组命令


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

编写模型后,执行迁移命令

# python manage.py db init  # 初始化,只需要初始化一次
# python manage.py db migrate  # 生成迁移文件
# python manage.py db upgrade
;