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   #运行迁移脚本,同步到数据库中

 

posted @   一路向北d  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示