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
0
投稿
猜你喜欢
- 介绍百度aip模块是用于实现百度云与用户接口,简单来说就是使用百度云所拥有的人工智能模块。模块使用pip install baidu-aip
- 回顾在前面的系列章节中,我们创建了一个数据库并且学着用用户和邮件来填充,但是到现在我们还没能够植入到我们的程序中。 两章之前,我
- 如下所示:年月日时分秒>>> print datetime.datetime.now().strftime("%
- Python数据类型分为值类型和引用类型, 下面我们看下它们的区别:值类型:对象本身不允许修改,数值的修改实际上是让变量指向了一个新的对象包
- 本文实例讲述了Python中IPYTHON用法。分享给大家供大家参考。具体分析如下:1. 使用TAB补全功能2. 配置IPYTHON.ipy
- 我们在工作中经常强调沟通能力,和产品、开发、测试等不同角色的人需要沟通,和领导、同事需要沟通,沟通是一个双向的过程,而沟通首先需要双方有良好
- 一、 基础使用1.1 logging使用场景日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging
- 虽然说标题将的是首页的访问感受,但是同样适合于网站其它页面的用户体验设计,一个好的网站设计应当尽量做到首页和次页一视同仁。第一步(视觉设计)
- 我就废话不多说了,大家还是直接看代码吧!import matplotlib.pyplot as pltimport numpy as npf
- 前言大家应该都有所体会,为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不
- PHP mysqli_stmt_init() 函数初始化声明并返回 mysqli_stmt_prepare() 使用的对象:<?php
- 远程(如通过互联网)连接access数据库的示例:首先,需要使用TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)
- 在python中加背景音乐的方法:1、导入pygame资源包;2、修改音乐的file路径;3、使用init()方法进行初始化;4、使用loa
- 1. 文件锁脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件。通过文件的判断来确定脚本是否正在执行。方法实现也
- 用到给视频添加背景音乐,并改变音量。记录一下,与碰到同样问题的朋友共享。import subprocessinmp4='E:/Pyc
- goto语句在Go编程语言中的goto语句提供无条件跳转从跳转到标记声明的功能。注意:使用goto语句是高度劝阻的在任何编程语言,因为它使得
- 日志作为项目开发和运行中必备组件,python提供了内置的logging模块来完成这个工作;借助 TimedRotatingFileHand
- 前言拓扑排序是图论中一种重要的排序算法,用于对有向无环图(DAG)进行排序。在拓扑排序中,图的顶点表示任务,有向边表示任务之间的依赖关系。拓
- 一、含有一个装饰器#encoding: utf-8############含有一个装饰器#########def outer(func):
- 对于那些需要在登录环境下进行的爬虫操作,模拟登陆或伪装已登录状态是一个刚需。分析了网上关于模拟登录的例子,很多都基于用户名/密码发起一个po