Dajango連接mysql問題

問題1

1、在使用 Django 連接 MySQL 數據庫的時候,出現了錯誤
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named ‘MySQLdb’

解決辦法:
在 python2 中,使用 pip install mysql-python 進行安裝連接MySQL的庫,使用時 import MySQLdb 進行使用
在 python3 中,改變了連接庫,改爲了 pymysql 庫,使用pip install pymysql 進行安裝,直接導入import pymysql使用

感覺在上面的基礎上把 python3 的 pymysql 庫安裝上去就行了,但是問題依舊
經過查閱得知, Django 依舊是使用 py2 的 MySQLdb 庫的,得到進行適當的轉換才行

在__init__.py 文件中添加以下代碼

import pymysql
pymysql.install_as_MySQLdb()

在這裏插入圖片描述意思就是 Django 把 pymysql 當成 MySQLdb 來使用

問題2

搭建Django2.0+Python3+MySQL5時同步數據庫時報錯:
1、django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

解決辦法
找到Python安裝路勁下的Python36-32\Lib\site-packages\django\db\backends\mysql\base.py文件
將文件中的如下代碼註釋
MySQLclient目前只支持到python3.4,因此如果使用的更高版本的python,可以修改下面路徑的文件(即python的安裝路徑)

if version < (1, 3, 13):
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

在這裏插入圖片描述重新在項目manage.py路勁下執行如下命令即可
python manage.py makemigrations
python manage.py migrate

問題3

File “D:\python3\Anaconda3\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’

解決辦法:
D:\python3\Anaconda3\lib\site-packages\django\db\backends\mysql\operations.py
打開此文件把146行的decode修改爲encode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章