Django 連接Mysql數據庫教程
接觸Django的童鞋們都知道,Django默認的數據庫爲Sqlite,那麼怎麼使用Mysql數據庫進行連接呢,下面給大家詳細介紹
- 首先搭建好Python環境和Django工程,創建app
創建工程:django-admin startproject 工程名
創建app
cd mysite
python manage.py startapp app01
python manage.py startapp app02
- 在Django項目中安裝pymysql和mysqlclient
pip install pymysql
pip install mysqlclient
這裏大家要注意,一定要安裝在當前項目的site-packages中
例如,我的Django項目在E:/django2,那麼pymysql和mysqlclient安裝在E:/django2/venv/Lib/site-packages中
- 配置setting文件
首先在INSTALLED_APPS 中加入你的app名,我的app名爲app01,app02
- 在setting中配置Mysql數據庫
NAME:數據庫的名字
HOST:連接的主機,默認爲本地
PORT:連接的端口,默認爲3306
USER:用戶登錄數據庫的用戶名
PASSWORD:登錄數據庫所使用的密碼 - 在app中寫表結構
在你在創建數據庫的app中配置models文件
我這裏給大家用app02進行舉例:
創建一個作者的類,裏面有三個參數,分別是姓,名,郵箱
使用的是char類型,最大長度爲32,郵箱使用的是郵箱的數據類型,這裏的數據類型有很多種,下面我給出大家Django官方文檔,大家可以詳細學習
Django models 數據類型官方文檔 - 配置admin文件
- 登錄本地mysql數據庫,創建剛纔setting中命名的數據庫,我命名的是django2
8.生成配置文件
python manage.py makemgirations #生成配置文件
python manage.py migrate #根據配置創建數據庫相關東西
這兩行代碼在地方敲呢,有兩種方式- 如果你使用的是Pycharm的話,可以點擊Terminal,會自動進入該工程下,然後打那兩行代碼
- 如果你用的不是Pycharm的話,進入cmd,找到你的Django工程的目錄下,打那兩行代碼
注意:如果在打完 python manage.py makemgirations 後報錯,下面我給出常見的幾種報錯的解決辦法 - 報錯1: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
具體報錯內容:
- 如果你使用的是Pycharm的話,可以點擊Terminal,會自動進入該工程下,然後打那兩行代碼
raise ImproperlyConfigured('mysqlclient 1.x.xx or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
解決辦法:
進入Django工程目錄/Lib/site-packages/django/db/backends/mysql/base.py 註釋到下面的內容。
# if version < (1, 3, 13):
# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
4. 報錯2:AttributeError: 'str' object has no attribute 'decode'
報錯內容:
File "xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
解決辦法:
打開工程項目下的\lib\site-packages\django\db\backends\mysql\operations.py 把146行的 decode 修改爲 encode 即可
- 創建超級用戶,用於後臺管理
python manage.py createsuperuser 用戶名
輸入郵箱,密碼,創建完成
- 運行manage.py文件
當出現這個頁面時,說明連接成功 - 在網頁上輸入127.0.0.1:8000/admin/ 回車,進入Django網頁管理入口,輸入用戶名和密碼進行登錄
- 隨後就顯示數據庫的網頁管理平臺