Python練習(xí)之ORM框架
目的:
- 了解常用的ORM框架;
- 使用SQLObject框架操作MySQL數(shù)據(jù)庫(kù)。
面試題:
- 在Python語(yǔ)言中有哪些常用的ORM框架,它們有什么區(qū)別?
- 如何使用SQLObject框架操作MySQL數(shù)據(jù)庫(kù)?
一、Python語(yǔ)言中有哪些常用的ORM框架以及它們的區(qū)別
在Python語(yǔ)言中主要有以下兩個(gè)常用的ORM框架:
- SQLAlchemy
- SQLObject
它們倆的區(qū)別:
- SQLAlchemy框架偏向于SQL,可以靈活地提交SQL語(yǔ)句;
- 而SQLObject框架更加面向?qū)ο螅瑹o(wú)法自由使用原生的SQL語(yǔ)句。
二、使用SQLObject框架操作MySQL數(shù)據(jù)庫(kù)
第一題提到的兩個(gè)框架都需要安裝:
pip install sqlobject
1. 創(chuàng)建表
# coding=utf-8
from sqlobject import *
# 庫(kù)名
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()
# 習(xí)慣性創(chuàng)建一個(gè)新表之前先刪除~ (是個(gè)好習(xí)慣哦!)
try:
Person.dropTable()
except:
pass
Person.createTable()使用Navicat查看:

2. 插入數(shù)據(jù)


使用Navicat查看:

3. 修改數(shù)據(jù)

使用Navicat查看:

4. 查詢(xún)數(shù)據(jù)


刪除數(shù)據(jù):

使用Navicat查看:

三、補(bǔ)充總結(jié)
首先,關(guān)于ORM簡(jiǎn)單聊幾嘴:
對(duì)于像Python這樣的面向?qū)ο蟮恼Z(yǔ)言來(lái)說(shuō) ,一切皆對(duì)象 ,但是我們使用的數(shù)據(jù)庫(kù)都是關(guān)系型的。 為了保證一致的使用習(xí)慣 ,我們就需要使用ORM在編程語(yǔ)言的對(duì)象模型和數(shù)據(jù)庫(kù)的關(guān)系模型之間建立映射關(guān)系 ,這樣我們?cè)诓僮鲾?shù)據(jù)庫(kù)時(shí)就可以直接使用編程語(yǔ)言的對(duì)象模型 ,而不用使用sql語(yǔ)言。
而ORM到底是什么呢?
- 英文全稱(chēng)object relational mapping(對(duì)象映射關(guān)系程序)
- 對(duì)象和關(guān)系之間的映射,讓我們可以使用面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù)。
- 把任何一個(gè)sql語(yǔ)句都封裝成對(duì)象操作。關(guān)系模型和Python對(duì)象之間的映射如下:
| table -> class | 表映射為類(lèi) |
| row -> object | 行映射為實(shí)例 |
| column -> property | 字段映射為屬性 |
到此這篇關(guān)于Python練習(xí)之ORM框架的文章就介紹到這了,更多相關(guān)Python ORM框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3?requests中文亂碼之壓縮格式問(wèn)題解析
這篇文章主要介紹了python3?requests中文亂碼問(wèn)題之壓縮格式問(wèn)題,我們?cè)谂老x(chóng)時(shí),經(jīng)常會(huì)遇見(jiàn)中文亂碼問(wèn)題,之前都是編碼格式的問(wèn)題,很少遇見(jiàn)由于壓縮格式造成的編碼混亂問(wèn)題,特記錄下,需要的朋友可以參考下2022-08-08
微信小程序前端如何調(diào)用python后端的模型詳解
近期需要開(kāi)發(fā)一個(gè)打分的微信小程序,涉及到與后臺(tái)服務(wù)器的數(shù)據(jù)交互,這篇文章主要給大家介紹了關(guān)于微信小程序前端如何調(diào)用python后端模型的相關(guān)資料,需要的朋友可以參考下2022-04-04
python實(shí)現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
使用python實(shí)現(xiàn)正則匹配檢索遠(yuǎn)端FTP目錄下的文件
這篇文章主要介紹了使用python實(shí)現(xiàn)正則匹配檢索遠(yuǎn)端FTP目錄下的文件的方法,非常的簡(jiǎn)單實(shí)用,需要的小伙伴參考下2015-03-03
Python實(shí)現(xiàn)敏感詞過(guò)濾的五種方法
在我們生活中的一些場(chǎng)合經(jīng)常會(huì)有一些不該出現(xiàn)的敏感詞,我們通常會(huì)使用*去屏蔽它,一些罵人的敏感詞和一些政治敏感詞都不應(yīng)該出現(xiàn)在一些公共場(chǎng)合中,這個(gè)時(shí)候我們就需要一定的手段去屏蔽這些敏感詞,下面我來(lái)介紹一些簡(jiǎn)單版本的Python敏感詞屏蔽的方法,需要的朋友可以參考下2025-04-04
django認(rèn)證系統(tǒng) Authentication使用詳解
這篇文章主要介紹了django認(rèn)證系統(tǒng) Authentication使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
基于Python在MacOS上安裝robotframework-ride
今天小編就為大家分享一篇關(guān)于基于Python在MacOS上安裝robotframework-ride,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
python 并發(fā)下載器實(shí)現(xiàn)方法示例
這篇文章主要介紹了python 并發(fā)下載器實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了并發(fā)下載器相關(guān)原理及Python并發(fā)下載視頻的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖
這篇文章主要介紹了Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

