Django中更改默认数据库为mysql的方法示例
Django中默认使用sqlite3数据库,今天研究了下如何将它换成常见的mysql数据库。
由于项目用得python3,而MySQLdb没有支持python3的版本,如果使用python3.x版本时,pipinstallMySQLdb时会报错。
后来通过谷歌发现可以使用pymysql替代MySQLdb
1在项目根目录下的__init__.py文件中加入如下代码:
importpymysql pymysql.install_as_MySQLdb()
2使用mysqlclient代替MySQLdb,安装方式为:
pipinstallmysqlclient
3更改项目setting.py中对数据库的配置为:
DATABASES={ 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'test', 'USER':'username', 'PASSWORD':'passwd', 'HOST':'localhost', 'PORT':'3306' } }
4最后通过pythonmanage.pymigrate命令,Django会在数据库中自动创建相应的表
Operationstoperform:
Applyallmigrations:admin,auth,contenttypes,polls,sessions
Runningmigrations:
Applyingcontenttypes.0001_initial...OK
Applyingauth.0001_initial...OK
Applyingadmin.0001_initial...OK
Applyingadmin.0002_logentry_remove_auto_add...OK
Applyingadmin.0003_logentry_add_action_flag_choices...OK
Applyingcontenttypes.0002_remove_content_type_name...OK
Applyingauth.0002_alter_permission_name_max_length...OK
Applyingauth.0003_alter_user_email_max_length...OK
Applyingauth.0004_alter_user_username_opts...OK
Applyingauth.0005_alter_user_last_login_null...OK
Applyingauth.0006_require_contenttypes_0002...OK
Applyingauth.0007_alter_validators_add_error_messages...OK
Applyingauth.0008_alter_user_username_max_length...OK
Applyingauth.0009_alter_user_last_name_max_length...OK
Applyingpolls.0001_initial...OK
Applyingsessions.0001_initial...OK
5在创建admin用户时,遇到了如下报错
pythonmanage.pycreatesuperuser
SuperusercreationskippedduetonotrunninginaTTY.Youcanrun`manage.pycreatesuperuser`inyourprojecttocreateonemanually.
后来查了一下,是因为使用了git来执行命令,切换到Windows自带的命令行,可以解决该问题!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。