Python练习之ORM框架
作者:??孤寒者???? 发布时间:2021-03-10 11:34:20
标签:Python,ORM,框架
目的:
了解常用的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


猜你喜欢
- django接口可以通过localhost或者127.0.0.1进行访问,但无法通过本机ip地址访问1. 修改django项目中的setti
- Xxencode编码,也是一个二进制字符转换为普通打印字符方法。跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同。通个UUe
- 锁类型介绍MySQL 有三种锁的级别:页级、表级、行级1 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高, 并发度最
- YOLOv5的Backbone设计在上一篇文章《YOLOV5的anchor设定》中我们讨论了anchor的产生原理和检测过程,对YOLOv5
- 本文实例讲述了Python实现的KMeans聚类算法。分享给大家供大家参考,具体如下:菜鸟一枚,编程初学者,最近想使用Python3实现几个
- 散点图和折线图是数据分析中最常用的两种图形。其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还
- 上次在“给网页添加打印按钮”一文中,有一段代码是“复制本文链接到剪贴板”js脚本,很可惜只能在IE中使用。这次在“淘宝网在线充值中心 - 荆
- 先来看看基本的定义:channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程
- Powerdesigner界面-tools-Resources-DBMS,点击左上角的New,选择copy from templete,如果
- 场景:在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。<script setup lang="ts&q
- Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。降采样:高
- 环境:Python+keras,后端为Tensorflow训练集:MNIST对于如何训练一个识别手写数字的神经网络,网上资源十分丰富,并且能
- 编程一直是在课余时间,放假时间自学,到现在为止也有半年了。这是我自己用python实现的连连看,也是第一个完成的游戏,虽然极其简陋。思路呢,
- asp按关键字查询XML的问题 '-------------------------------------------------
- 1. 复制表结构及其数据:create table table_name_new as select * from table_name_o
- 1.重复声明var支持重复声明,let、const不支持重复声明。1.1 varvar a = 1;var a = 2;console.lo
- 本文分为两个部分,第一部分是关于pip,第二部分关于pygal,主要关于二者的简介以及安装过程的分享,希望对大家有所帮助。一、pip1.简介
- Python sorted() 函数sorted() 函数对所有可迭代的对象进行排序操作sorted 语法:sorted(iterable,
- 问题:将文件夹a下任意命名的10个文件修改为如下图所示文件?代码:#coding:utf-8import ospath = "./
- 效果图实例代码今天我们要用微信小程序实现2048小游戏,效果图如上面所示。游戏的规则很简单,你需要控制所有方块向同一个方向运动,两个相同数字