1. 程式人生 > 資料庫 >Django中更改預設資料庫為mysql的方法示例

Django中更改預設資料庫為mysql的方法示例

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

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

後來通過谷歌發現可以使用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自帶的命令列,可以解決該問題!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。