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:[email protected]: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 字段映射為屬性

到此這篇關於Python練習之ORM框架的文章就介紹到這瞭,更多相關Python ORM框架內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: