首頁  >  文章  >  後端開發  >  Django中怎麼更改預設資料庫為mysql(詳細過程)

Django中怎麼更改預設資料庫為mysql(詳細過程)

不言
不言轉載
2018-12-04 17:24:283392瀏覽

這篇文章帶給大家的內容是關於Django中怎麼更改預設資料庫為mysql(詳細過程),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

Django中預設使用sqlite3資料庫,今天研究瞭下如何將它換成常見的mysql資料庫。

由於專案用得python3,而MySQLdb並沒有支援python3的版本,如果使用python3.x版本時,pip install MySQLdb時會報錯。

後來透過Google發現可以使用pymysql取代MySQLdb

1  在專案根目錄下的__init__.py檔案中加入如下程式碼:

import pymysql
pymysql.install_as_MySQLdb()

2  使用mysqlclient取代MySQLdb ,安裝方式為:

pip install mysqlclient

3  更改項目setting.py中對資料庫的設定為:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'username',
        'PASSWORD': 'passwd',
        'HOST': 'localhost',
        'PORT': '3306'
    }
}

4  最後透過python manage.py migrate指令,Django會在資料庫中自動建立對應的表

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

5  在創建admin用戶時,遇到瞭如下報錯

python manage.py createsuperuser
Superuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.

後來查了一下,是因為使用了git來執行命令,切換到Windows自帶的命令行,可以解決該問題!

#

以上是Django中怎麼更改預設資料庫為mysql(詳細過程)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除