1.创建数据库
create database db_name default charset utf8 collate utf8_unicode_ci;
2.安装pymysql
项目的__init__.py下:
import pymysql
pymysql.install_as_MySQLdb()
错误一:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决方法:
/site-packages/django/db/backends/mysql/base.py里注释:
# if version < (1, 3, 13):
# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
错误二:
AttributeError: 'str' object has no attribute 'decode'
解决方法:
query = query.decode(errors='replace') >>query = query.encode(errors='replace')
3.setting数据库配置与数据迁移
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cus_xadmin',
'USER': 'root',
'PASSWORD': 'Aa123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
makemigrations -->将每个应用下的models先映射成数据库的日志文件(中间文件),并存放在每个应用下的migrations的文件夹.
migrate -->将每个映射下的migraltions文件夹中的日志文件同步到数据库中.
后面集成xadmin后,执行上述命令可能报错。解决方法:删掉所有的表,重新执行上述命令即可。
4.集成xadmin(这里是源码)
把extra_apps加入python的搜索路径的list里面(后面的apps也是同理):
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
集成xadmin所需要安装的包 :
INSTALLED_APPS = [
...
'xadmin',
'crispy_forms',
'reversion',
...
]
xadmin的依赖,根据xadmin源码里的requirements.txt安装即可。
# 设置AUTH_USER_MODEL,是为了让django使用自定义的model,而不是自带的model。
AUTH_USER_MODEL = "user_profile.UserProfile"
再次执行makemigrations/migrate时,可能报错,直接删除除__init__.py外的文件后再执行即可。
5.创建超级用户
createsuperuser