Python Web之Django連接MySQL數據庫

編程語言 Django MySQL Python 技術棧 技術棧 2017-10-14

前言

恭喜你,非常明智的選擇了Django作為你項目開發的基礎框架(手動滑稽)!

Python Web之Django連接MySQL數據庫

Python Web之Django連接MySQL數據庫

1.1.Django項目連接mysql數據庫

Django項目要操作數據庫,首先要和數據庫建立連接,才能讓程序中的數據和數據庫關聯起來進行增刪改查操作。

Django項目默認使用mysqldb模塊進行和mysql數據庫之間的交互操作,但是mysqldb模塊對於python3.4以上的版本支持還不夠完善,所以我們要使用替代方案。

  • 通過pymysql模塊完成和數據庫之間的交互過程

Django連接mysql數據庫的操作,是通過根模塊的配置實現的,在項目根模塊的配置文件settings.py中,我們可以查詢到如下DATABASES的配置信息:

Python Web之Django連接MySQL數據庫

settings.py配置文件

ENGINE:用於特定的數據庫引擎的配置,一般如下幾種:

django.db.backends.sqlite3django.db.backends.postgresqldjango.db.backends.mysqldjango.db.backends.oracle

其餘的參數分別是:

NAME:要連接的數據庫名稱的配置;

USER:配置連接數據庫的用戶賬號;

PASSWORD:配置連接數據庫的登錄密碼;

HOST:配置數據庫所在的主機IP地址;

PORT:配置連接數據庫的端口號;

CHARSET:配置連接數據庫交互數據編碼格式。

如圖:

Python Web之Django連接MySQL數據庫

修改DATABASES配置

如此,Django和數據庫之間的連接關係就建立了。

1.2.定義創建模型

在Django項目中定義模型數據,其實就是定義class類型,通過類型創建的對象來封裝管理數據,一定要在這裡明確關聯和對應關係。

Python Web之Django連接MySQL數據庫

定義創建模型

有了對應關係之後,我們要創建的模型對象的屬性必須和數據庫中的字段類型對應起來:

Python Web之Django連接MySQL數據庫

對應關係

每個字段定義時,都會有自己的一些特殊的選項指定:

Python Web之Django連接MySQL數據庫

主鍵和唯一約束等

在大部分項目中,還會涉及到多表關聯操作:

Python Web之Django連接MySQL數據庫

多表關聯操作

根據創建的個人博客,創建用戶類型和文章類型如下:

mysite/myblog/views.py

Python Web之Django連接MySQL數據庫

創建文章類型和作者類型

2.數據庫同步操作

創建好我們需要的模型類之後,需要將創建好的類型添加到數據庫中並同時建立關聯關係,根據模型類自動生成對應數據庫引擎的sql語句。在settings.py中,連接數據庫信息中配置了數據庫引擎,其實就是已經告訴Django我們使用的是哪個數據庫了,Django會根據指定的數據庫自動生成sql語句。

python manage.py makemigrations

Python Web之Django連接MySQL數據庫

自動創建指定數據庫的sql語句

  • 查看生成的sql語句

通過命令自動生成sql語句之後是存儲在文件中的,我們可以通過命令的方式直接查看生成的sql語句:

例:python manage.py sqlmigrate myblog 0001

Python Web之Django連接MySQL數據庫

查看生成的sql語句

  • 自動同步到數據庫

既然Django可以自動生成sql語句,當然可以自動同步到數據庫中,並不需要開發人員再去手工創建各種數據表了:

例:python manage.py migrate

Python Web之Django連接MySQL數據庫

同步數據庫命令

此時,再查看你的數據庫,好好享受Django框架帶來的便捷吧!

相關推薦

推薦中...