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

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


使用Navicat查看:

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

使用Navicat查看:

4. 查詢數(shù)據(jù)


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

使用Navicat查看:

三、補充總結(jié)
首先,關(guān)于ORM簡單聊幾嘴:
對于像Python這樣的面向?qū)ο蟮恼Z言來說 ,一切皆對象 ,但是我們使用的數(shù)據(jù)庫都是關(guān)系型的。 為了保證一致的使用習(xí)慣 ,我們就需要使用ORM在編程語言的對象模型和數(shù)據(jù)庫的關(guān)系模型之間建立映射關(guān)系 ,這樣我們在操作數(shù)據(jù)庫時就可以直接使用編程語言的對象模型 ,而不用使用sql語言。
而ORM到底是什么呢?
- 英文全稱object relational mapping(對象映射關(guān)系程序)
- 對象和關(guān)系之間的映射,讓我們可以使用面向?qū)ο蟮姆绞絹聿僮鲾?shù)據(jù)庫。
- 把任何一個sql語句都封裝成對象操作。關(guān)系模型和Python對象之間的映射如下:
| table -> class | 表映射為類 |
| row -> object | 行映射為實例 |
| column -> property | 字段映射為屬性 |
到此這篇關(guān)于Python練習(xí)之ORM框架的文章就介紹到這了,更多相關(guān)Python ORM框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序前端如何調(diào)用python后端的模型詳解
近期需要開發(fā)一個打分的微信小程序,涉及到與后臺服務(wù)器的數(shù)據(jù)交互,這篇文章主要給大家介紹了關(guān)于微信小程序前端如何調(diào)用python后端模型的相關(guān)資料,需要的朋友可以參考下2022-04-04
python實現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張
這篇文章主要為大家詳細介紹了python實現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
使用python實現(xiàn)正則匹配檢索遠端FTP目錄下的文件
這篇文章主要介紹了使用python實現(xiàn)正則匹配檢索遠端FTP目錄下的文件的方法,非常的簡單實用,需要的小伙伴參考下2015-03-03
django認證系統(tǒng) Authentication使用詳解
這篇文章主要介紹了django認證系統(tǒng) Authentication使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
基于Python在MacOS上安裝robotframework-ride
今天小編就為大家分享一篇關(guān)于基于Python在MacOS上安裝robotframework-ride,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Python如何根據(jù)時間序列數(shù)據(jù)作圖
這篇文章主要介紹了Python如何根據(jù)時間序列數(shù)據(jù)作圖,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05

