Python练习之ORM框架
作者:??孤寒者???? 时间:2021-03-10 11:34:20
目的:
了解常用的ORM框架;
使用SQLObject框架操作MySQL数据库。
面试题:
在Python语言中有哪些常用的ORM框架,它们有什么区别?
如何使用SQLObject框架操作MySQL数据库?
一、Python语言中有哪些常用的ORM框架以及它们的区别
在Python语言中主要有以下两个常用的ORM框架:
SQLAlchemy
SQLObject
它们俩的区别:
SQLAlchemy框架偏向于SQL,可以灵活地提交SQL语句;
而SQLObject框架更加面向对象,无法自由使用原生的SQL语句。
二、使用SQLObject框架操作MySQL数据库
第一题提到的两个框架都需要安装:
pip install sqlobject
1. 创建表
# coding=utf-8
from sqlobject import *
# 库名
mysql = 'mysql://root:123456@localhost:3306/test?charset=utf8'
# 用pymysql与sqlalchemy交互~
sqlhub.processConnection = connectionForURI(mysql, driver='pymysql')
class Person(SQLObject):
class sqlmeta:
table = 'new_persons'
name = StringCol(length = 30)
age = IntCol()
address = StringCol(length = 30)
salary = FloatCol()
# 习惯性创建一个新表之前先删除~ (是个好习惯哦!)
try:
Person.dropTable()
except:
pass
Person.createTable()
使用Navicat查看:
2. 插入数据
使用Navicat查看:
3. 修改数据
使用Navicat查看:
4. 查询数据
删除数据:
使用Navicat查看:
三、补充总结
首先,关于ORM简单聊几嘴:
对于像Python这样的面向对象的语言来说 ,一切皆对象 ,但是我们使用的数据库都是关系型的。 为了保证一致的使用习惯 ,我们就需要使用ORM在编程语言的对象模型和数据库的关系模型之间建立映射关系 ,这样我们在操作数据库时就可以直接使用编程语言的对象模型 ,而不用使用sql语言。
而ORM到底是什么呢?
英文全称object relational mapping(对象映射关系程序)
对象和关系之间的映射,让我们可以使用面向对象的方式来操作数据库。
把任何一个sql语句都封装成对象操作。关系模型和Python对象之间的映射如下:
table -> class | 表映射为类 |
row -> object | 行映射为实例 |
column -> property | 字段映射为属性 |
来源:https://juejin.cn/post/7101656413935501349
标签:Python,ORM,框架
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用Title提升可访问性二
2009-11-16 12:53:00
Python中的for循环详情
2022-04-11 04:30:54
![](https://img.aspxhome.com/file/2023/6/88996_0s.png)
Python实现文字pdf转换图片pdf效果
2021-03-10 23:20:03
AJAX中文乱码解决
2009-07-03 13:43:00
python使用scapy模块实现ARP扫描的过程
2023-07-16 11:55:26
![](https://img.aspxhome.com/file/2023/0/85070_0s.png)
firefox 2正则表达式
2008-08-25 19:15:00
python如何将两张图片生成为全景图片
2021-08-03 23:42:26
![](https://img.aspxhome.com/file/2023/0/81480_0s.jpg)
asp防止同时登陆的问题
2007-10-26 12:19:00
python人物视频背景替换实现虚拟空间穿梭
2023-06-11 06:58:30
![](https://img.aspxhome.com/file/2023/0/82690_0s.png)
PyTorch手写数字数据集进行多分类
2022-10-18 22:29:23
分类与类型的问题
2008-09-12 13:10:00
![](https://img.aspxhome.com/file/UploadPic/20089/12/2008912131610841s.jpg)
asp中判断服务器是否安装了某种组件的函数
2011-02-16 10:53:00
Response.Flush的用法
2010-04-08 12:54:00
pytorch简单实现神经网络功能
2022-02-21 23:29:49
![](https://img.aspxhome.com/file/2023/0/87760_0s.png)
解决pip install xxx报错SyntaxError: invalid syntax的问题
2023-02-13 23:53:07
![](https://img.aspxhome.com/file/2023/0/90760_0s.jpg)
Python logging设置和logger解析
2021-07-15 22:12:52
![](https://img.aspxhome.com/file/2023/5/107955_0s.png)
Python工程师面试题 与Python Web相关
2021-11-10 13:00:48
常用的三种修改mysql最大连接数的方法
2010-03-09 15:42:00
如何使用Script Encoder?
2010-06-05 12:42:00
在 Python 中使用 7zip 备份文件的操作
2022-10-01 10:05:56