使用Python做web开发过程中我们肯定会使用到数据库,有人可能使用原生sql进行操作,但大多数都会选择使用ORM方式操作数据库,如果你不知道什么是ORM的话请自行百度。今天唐丁给大家介绍几个常用的ORM库,并列出其中常用的操作数据库的函数。

sqlalchemy

这个框架适合企业级项目的开发

安装

pip install sqlalchemy

数据表样例

class User(Base):__tablename__ = 'users'  # 表名__table_args__ = {'sqlite_autoincrement': True}# 表结构id = Column(Integer, primary_key=True, autoincrement=True)name = Column(String(32), nullable=False)  # 有些数据库允许不指定String的长度age = Column(Integer, default=0)password = Column(String(64), unique=True)

常用操作

# 增加单条数据
user = User(name='Jery',password='123')
# 增加多条数据
session.add_all([User(name='Jery',password='123'),User(name='Mike',password='123')User(name='Don',password='123')
])
# 查找所有-无条件
session.query(User).all()
# 单条件查询
session.query(User).filter(User.id == 4).all()  #返回结果列表
session.query(User).filter(User.id == 4).first()  #返回单个实例
# 多条件查询
session.query(User).filter(User.id == 4, User.name == "donding").all()
# 模糊查询
session.query(User).filter(User.name.like('%e%')).all()
# 排序-升序
session.query(User).order_by(User.name).all()
# 排序-降序
session.query(User).order_by(User.name.desc()).all()
# 限制数量
session.query(User).limit(2)
# 统计数量
session.query(User).order_by(User.name.desc()).count()
# 改
user = session.query(User).filter(User.id == 4).first()
user.name = "dingcong"# 删
user = session.query(User).filter(User.id == 4).first()
session.delete(user)

peewee
不追求性能,推荐个人项目使用

安装

pip install peewee

数据表样例

class BaseModel(Model):class Meta:database = db
class User(BaseModel):username = CharField(unique=True)
常用操作# 增Patent(title='****',patent_type='实用新型',patent_number='CN202021645688.6',apply_date='2020-08-10',public_number='CN212411071U',public_date='2021-01-26',apply_person='***',address='***',inventor='唐丁',classification_code='***',main_classification_code='G05D1/02',region_code=32,page_num=9,agency='***专利代理有限公司',agent='**',dbcode='***',dbname='***',filename='***',status=1,create_time=datetime.now(),update_time=datetime.now()).save()p = Person(name='liuchungui', birthday=date(1990, 12, 20), is_relative=True)p.save()# 删除姓名为perter的数据Person.delete().where(Person.name == 'perter').execute()# 更新birthday数据q = Person.update({Person.birthday: date(1983, 12, 21)}).where(Person.name == 'liuchungui')q.execute()# 查询单条数据p = Person.get(Person.name == 'liuchungui'# 使用where().get()查询p = Person.select().where(Person.name == 'liuchungui').get()# 查询多条数据persons = Person.select().where(Person.is_relative == True)

Python常用的ORM/orm框架相关推荐

  1. Python之web开发(一):python常用搭建网站的框架简介

    谈及WEB开发,使用java来的确要比python多的多.但实际上还是有很多大型的网站都是使用python搭建起来的,如国外最大的视频分析网站YouTube.国内的豆瓣.搜狐以及知乎等都是使用pyth ...

  2. Python数据库操作之ORM框架

    前言 之前在github上下载开源项目,里面使用到SQLAlchemy框架,现在想研究一下具体实现 介绍 基本的操作数据库是Mysql官方的MySQL-connector驱动,来完成数据库的连接和使用 ...

  3. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  4. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...

  5. ORM映射框架总结--数据库操作库(精修版)

    1.       ORM数据库操作原理 前面已经介绍过了个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www.cnblogs.com/qingyuan/archive ...

  6. ORM 系列:一个个人ORM映射框架

    转载:http://www.cnblogs.com/qingyuan/category/239086.html 个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www. ...

  7. Python-Sqlalchemy(ORM数据库框架)

    文章目录 python-Sqlalchemy(ORM数据库框架) 概念和数据类型 安装 连接 创建数据库表类(模型) 生成数据库表 会话 增删改查 增 查 改 删 执行裸sql with关闭会话 sq ...

  8. python常用框架

    一.Django: Python Web应用开发框架 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理 ...

  9. python常用框架和库总结

    1. Flask :一个用python编写的Web应用框架,它整合了Werzeug(WSGI实用工具)和Jinja2(模板引擎)两个库. 2. shelve:python的标准模块shelve用来存储 ...

  10. .NET-4.ORM 常见框架EFcorn、Dapper、SqlSugar、FreeSql 和ADO.NET

    ORM 常见框架 前言 什么是ORM EF Core学习与深入 一.了解 EF Core 1.DbContext 2.数据注释.Fluent API学习 二.简单的案例使用1(推荐参考最佳) 三.简单 ...

最新文章

  1. 2021年春季学期-信号与系统-第八次作业参考答案-第四小题
  2. 【Redis】2、CentOS 7 上安装 redis3.2.3安装与配置
  3. UIButton标题和图片位置的确定法则
  4. 每天学习flash一点(3) flash外部读取xml
  5. 第一百一十六期:不能错过!你必须知道的3种重要Python技能
  6. yii2框架获取刚插入数据库的id (原创)
  7. 志高空调,到了最危险的时候!
  8. Java Socket实战之六 使用NIO包实现Socket通信
  9. 自学python买什么教材-学习Python的正确姿势—基础教学,教科书该怎么买?
  10. LPDDR4协议规范之 (一)地址映射和容量计算
  11. 程序员因接外包坐牢!两万字长文揭露心酸真实经历
  12. 给yarn配置国内镜像加速器
  13. linux查看usb文件,linux lsusb查看USB信息
  14. 全倒装COB小间距LED全彩显示屏必将推动下一代显示技术的发展。
  15. 剑指offer刷题笔记-篇2
  16. 【LLC原理与设计】仙童半导体 LLC原理与设计
  17. RK3399-RGA使用
  18. 深度语义理解在剧本角色情感分析中的探索与应用
  19. 当所有人都站着吆喝,我选择退一步坐下
  20. 关于《数据结构与算法JavaScript描述》这本书

热门文章

  1. java毕业设计高铁站失物招领平台mybatis+源码+调试部署+系统+数据库+lw
  2. Win10删除资源管理器左侧“视频、图片、音乐”等图标
  3. 直接在屏幕上,选取区域进行截屏分享到QQ、微信
  4. 小王学MySQL-1
  5. WebGL入门(四十二)-使用(FBO)实现阴影效果
  6. Osmo Pocket 分辨率、帧率怎么设置?什么是4k分辨率?ccd和cmos像素都一亿了,为啥视频分辨率才4k?
  7. 为什么要用电子签章?电子签章怎么用?
  8. 微信推出图片大爆炸功能;苹果自研 5G 芯片或已失败;微软解决导致 Edge 停止响应的 bug|极客头条...
  9. CSS-动态计算高度
  10. 易优CMS:compare的基础用法