前言

之前在github上下载开源项目,里面使用到SQLAlchemy框架,现在想研究一下具体实现

介绍

基本的操作数据库是Mysql官方的MySQL-connector驱动,来完成数据库的连接和使用,但当项目规模增加时,代码会越来越复杂。效率比较高的是基于ORM来操作Mysql。
ORM(Object Relation Mapping),中文意思是对象关系映射,是将底层的RDBMS封装成业务实体对象,提供给业务逻辑层使用。优点是:

  1. 定义好类和对象,不必关注底层的数据库的访问细节,只需注意业务逻辑层面即可。不再需要SQL语句来操作数据库,使用函数来完成对数据库的操作即可。
  2. 即便数据库本身进行了更换,在业务逻辑代码上也不会有大的调整。因为OR
    抽象了数据的存取,同时也兼容了多种DBMS,不必关心底层采用的是哪种DBMS,例如MySQL,SQL Server,PostgreSQL或SQLite。

python中主流的ORM框架

  1. Django,它是Python的web应用开发框架,采用了MTV的框架模式,包括了Model(模式),View(视图)和Template(模板)。Model模型只是Django的一部分功能,我们可以通过它实现数据库的增删改查操作。
  2. SQLALchemy,是Python常用的ORM框架之一,提供了SQL工具包和ORM工具
  3. peewee,轻量级的ORM框架,简单易用。

peewee框架介绍

注意:使用之前先

 pip install pymysql pip install peewee
  1. 连接数据库,创建Table–Person
  2. 插入一条记录
from peewee import *
import datetimedb_connect = MySQLDatabase('mysql_test',host = '127.0.0.1',port = 3306,user='root',password = '' )class Person(Model):name = CharField(max_length=10)birthday = DateField()class Meta:database = db_connecttable_name = 'person'
if __name__ == '__main__':db_connect.create_tables([Person])p1 = Person(name='222', birthday=datetime.date(1888, 1, 11))p1.save()
  • 新增数据也可以采用另一种写法
p = Person.create(name ='3',birthdat = datetime.date(1992,3,23))
  • 查找数据
#注意:这里是 ==
p = Person.select().where(Person.name=='3').get()
print(p.birthday)
  • 修改数据
#写法1p = Person.select().where(Person.name=='3').get()p.birthday = datetime.date(1222,2,22)p.save()
#写法2p2 = Person.get(Person.name=='3')
#也可以使用filter来过滤
  • 删除数据
#写法1info = Person.select().where(Person.name =='2').get()info.delete_instance()
#写法2Person.delete().where(Person.name=='222').execute()

外键约束,使用ForeignKeyField 建立外键。

注意:

  1. 如果一个表own的主键是另外一个表other的外键,那么如果own的id=111不存在,就无法向other表里插入这个元素,因为是得现有主键,才有外键。
  2. 使用peewee框架插入原色人之前,首先得先建立与数据库的连接,保证数据库是打开操作才能插入数据啊!

外键的相关链接:http://xiaorui.cc/archives/2766

Python数据库操作之ORM框架相关推荐

  1. 27.Python数据库操作(一)【内置数据库SQLite和ORM框架SQLAlchemy】

    目录: 每篇前言: Python数据库操作(一) 1.1 SQLite 1.2 ORM框架SQLAlchemy 每篇前言:

  2. python/数据库操作补充—模板—Session

    python/数据库操作补充-模板-Session 一.创建一个app目录 在models.py只能类进行进行创建表 1 class Foo: 2 xx= 字段(数据库数据类型) 3 字段类型 4 字 ...

  3. Python数据库操作【三】—— SQLServer

    SQLServer简介 以下摘自百度百科: SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft.Sybase和Ashton-Tate三家 ...

  4. python数据库操作——连接SQLite

    python数据库操作--连接SQLite   hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散. 连接SQLite python数据库操作 ...

  5. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)

    pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...

  6. eric python mysql,python入门教程13-07 (python语法入门之ORM框架SQLAlchemy)

    本章节主要介绍了python的orm框架的介绍以及作用,ORM框架的类型及运用方法,下面我们一起来看看吧! 一.面向对象应用场景: 1.函数有共同参数,解决参数不断重用: 2.模板(约束同一类事物的, ...

  7. python3数据库框架_Python3 MySQL 数据库连接:安装pymysql(mysql数据库驱动), sqlalchemy(ORM框架)。...

    Python3 MySQL 数据库连接 python3使用mysql作为数据库,安装pymysql作为驱动,然后安装sqlalchemy框架 PyMySQL 驱动 安装: $ python3 -m p ...

  8. python安装orm_Python流行ORM框架sqlalchemy安装与使用教程

    本文实例讲述了Python流行ORM框架sqlalchemy安装与使用.分享给大家供大家参考,具体如下: 安装 1.安装 #进入虚拟环境 #执行 ./python3 -m pip install im ...

  9. python数据库操作实例

    本篇文章主要讲解python3.9.6下数据库的链接和查询数据的方法 前置环境需要安装mysql和json两个模块,引入方式为import 模块名,不懂的朋友可以先看<python小白操作入门教 ...

最新文章

  1. 张小龙:我是对AI的未来表示担忧的人之一
  2. Android检查网络状态步骤
  3. 项目前端页面框架介绍
  4. Halcon学习笔记(三)---数据类型
  5. Go 上下文取消操作
  6. [测试技术分享]easyFuzzer使用案例分享
  7. github添加ToKen到本地并写入netrc实现自动登录
  8. 教你轻松解决苹果Mac安装Axure首次打开报错的问题
  9. 萤火商城前端页面搭建(一)
  10. 2018款联想Y7000 黑苹果外接显示器方案
  11. 数风流人物,俱在今朝!|2019年度CSDN博客之星TOP10榜单揭晓
  12. C++练习实例———控制台实现坦克大战小游戏
  13. Shopnc之nginx配置
  14. Ehcache基本使用
  15. 一家之言:中国IT人员创业存在的问题
  16. Redis数据结构-SkipList(跳表)
  17. 论文阅读笔记 | 三维目标检测——PartA2算法
  18. 库克、贝佐斯、扎克伯格和皮查伊的听证会,是美国政府的「数字化削藩」
  19. phpstorm许可证_PhpStorm 8发布-查看新功能并获取免费许可证
  20. win10更新后记事本不见了的解决方案

热门文章

  1. 具有无功补偿功能的光伏并网逆变器仿真模型matlab/simulink
  2. java大厂技术面试第八课 nginx/docker/tcp等
  3. 删除的聊天记录还能恢复!!聊天记录恢复方法汇总
  4. 企服云——免费在线专业表单制作问卷调查平台
  5. 怎样测量地图上曲线的长度_长度测量的五种方法
  6. riscv trace
  7. PMP考试报名条件有哪些
  8. 向Vue的prototype上绑定或.use()时Cannot read properties of undefined (reading ‘prototype‘)
  9. 计算机英语 刘阳,英语ⅰ计算机算法设计与分析.pdf
  10. Windows —— SMTP服务器