1. 创建一个config文件夹,里面在创建一个settings.py文件写入配置
class DefaultConfig():
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:222222@127.0.0.1:3306/h2111p7'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
2. 创建一个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')
username = db.Column(db.String(32), nullable=False, default='', comment='用户名')
password = db.Column(db.String(64), nullable=False, default='', comment='密码')
sex = db.Column(db.Boolean, nullable=False, default=True, comment='性别 0:男 1:女')
3. 在创建一个app.py文件写入代码
from flask import Flask
from models.models import db
from config.settings import DefaultConfig
app = Flask(__name__)
app.config.from_object(DefaultConfig)
print(app.config)
db.init_app(app)
if __name__ == ' __main__ ':
app.run()
- 一定要在根目录下创建一个manage.py迁移文件
from flask_migrate import Manager
from flask_migrate import MigrateCommand, Migrate
from models.model import db
from app import app
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
4. 模型类的增、删、改、查
- 首先在app.py里注册一个蓝图
from order import order_bp
app.register_blueprint(border_bp)
- 创建一个order.py文件写入代码
from flask import Buleprint
from flask_restful import Api, Resource, marshal, fields
from models.model import UserModel, db
order_bp = Blueprint('order_bp', __name__, url_prefix='/order')
api = Api(order_bp)
class OrderView(Resoure):
def get(self):
"""查看数据"""
"""修改数据"""
"""删除数据"""
UserModel.query.delete()
db.session.commit()
return '删除成功'
api.add_resource(OrderView, '/order')
常见的数据库类型
数据类型 | 解释 |
---|
Integer | 一个整数(*****) |
String (size) | 有长度限制的字符串(*****) |
Text | 一些较长的 unicode 文本(*****) |
DateTime | 表示为 Python datetime 对象的 时间和日期(*****) |
Float | 存储浮点值 |
Boolean | 存储布尔值 |
PickleType | 存储为一个持久化的 Python 对象 |
LargeBinary | 存储一个任意大的二进制数据 |
DECIMAL | 小数值(10,2) |