Flask(MySQL)——ORM模型与表的映射及增删改查操作

一、什么ORM模型?ORM模型有什么优势?        

        对象关系映射(Object·Relationship·Mapping),简称 ORM,是一种可以用 Python 面向对象的方式来操作关系型数据库的技术,具有可以映射到数据库表能力的Python类我们称之为ORM 模型。一个ORM 模型与数据库中一个表相对应,ORM 模型中的每个类属性分别对应表的每个字段,ORM 模型的每个实例对象对应表中每条记录。ORM技术提供了面向对象与SQL交互的桥梁,让开发者用面向对象的方式操作数据库,使用ORM模型具有以下优势。
        (1)
开发效率高:几乎不需要写原生SOL语句,使用纯Python的方式操作数据库,大大的提高了开发效率。   
        (2)
安全性高:ORM 模型底层代码对一些常见的安全问题,比如SQL注入做了防护,比直接使用SOL语句更加安全。

        (3)灵活性强:Flask-SQLAlchemy底层支持 SQLite、MySQL、Oracle、PostgreSQL 等关系型数据库,但针对不同的数据库,ORM 模型代码几乎一一样,只需修改少量代码,即可完成底层数据库的更换。

二、在Flask-->app.py中如何创建数据库表

ps:文章下方链接跳转上一章节flask如何连接数据库  Flask如何连接MySQL数据库?-CSDN博客

例:

class User(db.Model):  #创建User表继承已经封装好的数据库模型
    __tablename__ = "user"    #表名
    #定义字段
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)   #autoincrement序号自动增长
    username = db.Column(db.String(100), nullable=False)
    password = db.Column(db.String(100), nullable=False)

with app.app_context():  #上下文管理器来创建数据库表
    db.create_all()

三、增加操作

@app.route("/user/add")
def add_user():
    # 1. 创建ORM对象
    user = User(username="小陈", password='1001')
    # 2. 将ORM对象添加到db.session中
    db.session.add(user)
    # 3. 将db.session中的改变同步到数据库中
    db.session.commit()
    return "用户创建成功!"
#http://127.0.0.1:5000/user/add

四、查找操作

@app.route("/user/query")
def query_user():
    # 1. get查找:根据主键查找
    # user = User.query.get(1)
    # print(f"{user.id}: {user.username}-{user.password}")
    # 2. filter_by查找
    # Query:类数组
    users = User.query.filter_by(username="小陈")
    for user in users:
        print(user.username)  #多条数据查找
    return "数据查找成功!"
#http://127.0.0.1:5000/user/query

五、修改操作

@app.route("/user/update")
def update_user():
    user = User.query.filter_by(username="小陈").first()
    user.password = "2002"
    db.session.commit()
    return "数据修改成功!"
# http://127.0.0.1:5000/user/update

六、删除操作

@app.route('/user/delete')
def delete_user():
    # 1. 查找
    user = User.query.get(1)
    # 2. 从db.session中删除
    db.session.delete(user)
    # 3. 将db.session中的修改,同步到数据库中
    db.session.commit()
    return "数据删除成功!"
# http://127.0.0.1:5000/user/delete

 上一章节Flask如何连接MySQL数据库?-CSDN博客

下一章节Flask(Mysql)——ORM模型外键与表的关系及用flask_migrate迁移ORM模型-CSDN博客

 

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈从不熬夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值