Django中默認使用sqlite3數據庫,今天研究了下如何將它換成常見的mysql數據庫。python
因爲項目用得python3,而MySQLdb沒有支持python3的版本,若是使用python3.x版本時,pip install MySQLdb時會報錯。 mysql
後來經過谷歌發現可使用pymysql替代MySQLdbgit
1 在項目根目錄下的__init__.py文件中加入以下代碼:sql
import pymysql pymysql.install_as_MySQLdb()
2 使用mysqlclient代替MySQLdb,安裝方式爲:數據庫
pip install mysqlclient
3 更改項目setting.py中對數據庫的配置爲:django
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'username', 'PASSWORD': 'passwd', 'HOST': 'localhost', 'PORT': '3306' } }
4 最後經過python manage.py migrate
命令,Django會在數據庫中自動建立相應的表python3.x
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用戶時,遇到了以下報錯session
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自帶的命令行,能夠解決該問題!ui