深度剖析Python包技術
想要充分的掌握Python包的技術,那么就要對Python包中的結構、語句、變量、函數、預處理指令、輸入和輸出等內容進行了解掌握,下面文章進行學習研究。
通過提供用于操作數據庫表的類和對象,對象關系映射工具有助于提高生產率。Python 最好的對象關系映射工具是 SQLObject —— 一個開放源碼項目。它幾乎完成編程數據庫所需的所有操作。
本文介紹 SQLObject 及其功能。閱讀本文后,您將能夠不編寫任何 SQL 代碼而連接 Python 與數據庫。 當面向對象編程范例滿足大多數數據庫的關系范例時,通常會看到對象關系映射。對象關系映射是這兩個世界的橋梁。
它允許您定義與數據庫表對應的類。然后您可以使用這些類及其實例上的方法來與數據庫交互,而不用編寫 SQL。使用對象關系映射并不意味著不需要知道關系數據庫如何工作,而是不必要編寫 SQL,從而避免編程錯誤。
您可以找到一打以上的操作 SQL 數據庫的開放源碼 Python包,這還沒包括用于連接 Python 與特定數據庫的特殊用途模塊。SQLObject 是其中最好的模塊。它是簡單易用的完全對象關系映射包。SQLObject 幾乎可以完成編程數據庫所需的所有操作。
本文展示了 SQLObject 如何與數據庫交互,如何使用 SQLObject 編寫數據庫訪問和數據驗證代碼,SQLObject 具有一個 setup.py 文件,安裝方式與其他任何 Python包一樣。如果您使用的是 Python V2.2,則還需要安裝 mxDateTime Python 包(SQLObject 使用 Python V2.3 的內置 datetime 模塊,如果該模塊可用的話)。
要實際使用 SQLObject,需要設置數據庫包以及這種數據庫的 Python 接口。SQLObject 連接多種數據庫,其中包括三個大的開放源碼產品:MySQL、PostgreSQL 和無服務器 SQLite。最后,需要為應用程序創建數據庫。對于 SQLite,這意味著創建一個存儲該數據庫的文件。對于其他數據庫,這意味著連接數據庫服務器。
執行 CREATE DATABASE 命令,并授權數據庫用戶對新數據庫的一些訪問,以便 SQLObject 可以使用該用戶帳戶來連接。需要編寫的第一個 Python 代碼是數據庫連接代碼。基于所使用的數據庫,這是惟一需要編寫不同代碼的地方。
例如,如果想讓應用程序使用 SQLite 數據庫,則需要將數據庫文件的路徑寫入位于 sqlobject.sqlite 包的 SQLite 連接構建器中。如果數據庫文件不存在,QLObject 將告訴 SQLite 創建一個,代碼如下:
- mysql> use mysql;
- Database changed
- mysql> create database sqlobject_demo;
- Query OK, 1 row affected (0.00 sec)
- mysql> grant all privileges on sqlobject_demo to 'dbuser'@'localhost'
- identified by 'dbpassword';
- Query OK, 0 rows affected (0.00 sec)
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
如果使用的是Python包或帶有服務器的其他數據庫,則將數據庫連接信息傳遞到連接構建器中,清單 2 提供了在上一節創建的 MySQL 數據庫的示例,希望本文能教會你更多東西。