flask SQLAlchemy-ORM增删改查

这篇博客介绍了ORM的概念,以及如何使用Python的Flask-SQLAlchemy库进行数据库的增删改查操作。ORM通过对象关系映射简化了数据库交互,提供了易用性、性能和可移植性。文中详细展示了如何创建映射类、添加数据、查找记录、更新记录以及删除数据的方法。
摘要由CSDN通过智能技术生成

ORM介绍

随着项目越来越大,采用原生SQL的方式在代码中会出现大量的SQL语句,对项目的进展非常不利

  • SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近似的SQL语句
  • 很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,很容易漏掉某些SQL语句的修改
  • 写SQL时容易忽略web安全问题

ORM: Object Relationship Mapping,对象关系映射,通过ORM我们可以通过类的方式去操作数据库,而不用写原生的SQL语句。通过把表映射成类,把行作为实例,把字段作为属性,ORM在执行对象操作时候最终还是会把对应的操作转换为数据库原生语句

ORM的优点

  • 易用性:使用ORM做数据库的开发可以有效的减少SQL语句,写出来的模型也更加直观
  • 性能损耗小
  • 设计灵活:可以轻松写出来复杂的查询
  • 可移植性:SQLAlchemy封装了底层的数据库实现,支持多个关系型数据库,包括MySQL,SQLite

ORM使用

要使用ORM来操作数据库,首先需要创建一个类来与对应的表进行映射。现在以User表来做为例子,它有自增长的id、name、fullname、password这些字段,那么对应的类为

from sqlalchemy import Column,Integer,String
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base

LOCALHOST = "127.0.0.1"
PORT = 3306
DATABASE = "jd"
USERNAME = "root"
PASSWORD = "root"

DB_URI= f"mysql+mysqlconnector://{USERNAME}:{PASSWORD}@{LOCALHOST}:{PORT}/{DATABASE}"

engine = create_engine(DB_URI,echo=True)
# 所有的类都要继承自`declarative_base`这个函数生成的基类
Base = declarative_base(engine)
class User(Base):
    # 定义表名为users
    __tablename__ = 'users'

    # 将id设置为主键࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值