flask web 项目6 ORM模型与表的映射| 对数据库的操作| 表关系
#ORM 对象关系映射
一个ORM模型与数据库中的一张表对应
db=SQLAlchemy(app)
如user表
#继承db.Model db为SQLAlchemy(app)实例对象
class User(db.Model):
__tablename__="user" #表名
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
username=db.Column(db.String(100),nullable=False) #对应varchar字符类型, nullable表示字段是否为空
user =User(username="你好") #等价于 insert into user(username) values("你好");
db.create_all() #只能识别新增的表
#create操作
#1.创建ORM对象,一条记录
user1=User(username="你好")
#2.将对象添加到db.session中
db.session.add(user1)
#3.将db.session中的改变同步到数据库中
db.session.commit()
#查询操作
#1.get查找 根据主键查找
User.query.get(1) #主键字段id
#2.filter_by查找 是一个类列表对象
User.query.filter_by(username="张三")
#删除操作
#1. 先查找
user1=User.query.get(1)
#2.从db.session删除
db.session.delete(user1)
#3.同步
db.session.commit()
####表关系
class Article(db.Model):
__tablename__="user" #表名
aid=db.Column(db.Integer,primary_key=True,autoincrement=True)
aname=db.Column(db.String(100),nullable=False) #对应varchar字符类型, nullable表示字段是否为空
#添加外键
author_id=db.Column(db.Integer,db.ForeignKey("user.id"))
author = db.relationship("User") #等同于将user赋值给author
author = db.relationship("User",backref="articles") #backref:会自动给User模型添加一个articles属性
###flask_migrate
from flask_migrate import Migrate
migrate = Migrate(app,db)
#以下在终端执行就行
#ORM模型映射三步骤
flask db init #只需执行一次
flask db migrate #识别ORM模型的改变,生产迁移脚本
flask db upgrade #运行迁移脚本,同步到数据库中
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术