flask 对 mysql数据库的操作依赖于flask_sqlalchemy包
在使用这包的时候需要优先给这个包一个实例化对象db = SQLAlchemy(),这样的话就可以避免结构混乱导致的循环导包
在通过SQLAlchemy()对mysql进行操作的时候需要几个配置项:
# mysql+pymysql的目的是更好地对数据库进行操作 只使用mysql的话引擎有点跟不上
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://用户名:密码@地址:端口/数据库库名'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True在定义模型映射类的时候需要继承db.Model db是刚刚实例化的SQLAlchemy()
然后就是字段 由于在定义迁移的时候并不会自己生成id 所以我们要自行定义
create table tb_user
(
id int auto_increment primary key,
name int null,
gender int null,
create_date datetime null,
)对应的就是:
class User(db.Model):
"""
用户表
"""
# 这个是表名
__tablename__ = 'tb_user'
id = db.Column(db.Integer, primary_key=True, doc='用户ID', autoincrement=True)
name = db.Column(db.String(32), doc='昵称')
create_date = db.Column(db.DateTime, default=datetime.now, doc='创建时间')
def __str__(self):
return self.name通过这个模型类,我们就可以对数据库进行增删改查操作了
增:
user_obj = User(name=name, create_date=create_date)
db.session.add(user_obj)
db.session.commit()
删:
User.query.filter(UserMod.id == id).delete()
db.session.commit()
或者
User.query.filter_by(id=id).delete()
db.session.commit()
改:
User.query.filter(UserMod.id == id).update({'name': name)})
db.session.commit()
或者
User.query.filter_by(id=id).update({'name': name)})
db.session.commit()
查:
获取所有: User.query.all()
获取id为1的 User.query.filter(User.id == 1).first()
版权声明:本文为admin3wwwww原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。