📖 閱讀本文大概須要 26 分鐘。php
參考文章:html
https://blog.51cto.com/eagle6899/2146972python
https://blog.csdn.net/qq_36963372/article/details/82558085mysql
# Database # https://docs.djangoproject.com/en/2.2/ref/settings/#databases DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } }
$ python manage.py migrate
不出意外會讓你安裝 mysqlclient
sql
$ pip install mysqlclient
你能下載成功,但可能安裝失敗。提示相似 「_mysql.c(29): fatal error C1083: 沒法打開包括文件: 「mysql.h」: No such file or directory」
的信息。數據庫
總而言之,這是 window 開發者須要揹負的窮罪。django
解決方案都在這裏:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclientbash
咱們的目標是手動選擇一個適合的 mysqlclient.whl ,而後編譯。網站
$ pip install wheel
Python 2.7:Microsoft Visual C++ 2008 (x64, x86, and SP1)ui
Python 3.x:Visual C++ 2017 (x64 or x86)
# AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) # WIN32 import pip print(pip.pep425tags.get_supported())
環境不一樣,輸出不一樣,個人輸入以下:
[('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('py3', 'none', 'win32'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
根據個人支持表,我找到了文件: mysqlclient-1.4.2-cp37-cp37m-win32.whl
你能夠在這裏查找:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
也能夠在pip倉庫查找各類歷史版本:https://pypi.org/project/mysqlclient/#files
下載以後,進行安裝
$ pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
成功了你會看到以下輸出:
Processing c:\users\lee\downloads\mysqlclient-1.4.2-cp37-cp37m-win32.whl Installing collected packages: mysqlclient Successfully installed mysqlclient-1.4.2
若是是不正確的版本,你會出現以下報錯:
mysqlclient-1.3.11-cp36-cp36m-win32.whl is not a supported wheel on this platform.
不須要擔憂,慢慢找到匹配 pip 的便可。
一切塵埃落定以後,從新執行一下最初的 migratemigrate 命令。
$ python manage.py migrate
若是你的 mysql 版本是 5.5(筆者用 phpstudy 最新版也只有5.5)。還會出現一個 SQL 錯誤的信息:
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1"))
MySQL5.5並不支持Django2.1生成的這種SQL語句。我選擇安裝了 mysql lastest 版本。既 (mysql8.0.15)[https://dev.mysql.com/downloads/mysql/]
若是不會安裝,請參考個人另外一篇建議筆記:mysql 編譯安裝 window篇
或者參考網站 mysql 安裝教程。總之要確保運行中的 mysql 服務版本是 5.5 以上。
在確保你的 mysql 是最新且能訪問以後。從新執行一下該命令。
python manage.py migrate
若是成功會看到以下信息:
再看看你的數據庫,django 生成了很多實用的表。
(完)