环境:
Django 1.9.8
Python 3.5.2
MySQL 8.0.11
创建项目后在项目根目录下新建以下目录:
static:使用static目录来存放网站的静态文件:js,css,图片等。
log:使用log目录来存放网站的日志文件。
media:使用media目录存放用户上传的图片等资源。
apps:使用apps目录用来存放网站应用。在pycharm中将新建的app文件夹拖入apps文件夹内:会自动生成__init__.py
文件表明这是一个包。使得apps文件夹可导入。
现在设置项目的全局搜索路径
设置全局后,可以告诉项目导我的网站应用在哪个目录中
编辑settings.py,设置apps路径:
因此我们需要在settings.py中加入这两行代码:
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
MySQL数据库配置:
在settings.py中设置数据修改如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #设置为MySQL
'NAME': 'testdjango', #使用的哪个数据库
'USER': 'root', #数据库账号
'PASSWORD': 'xxxxxx', #数据库密码
'HOST': 'localhost' #数据库IP,此为本地数据
}
}
安装MySQL的Python驱动模块:
在 python2 中,使用 pip install mysql-python
进行安装连接MySQL的库,使用时 import MySQLdb
进行使用
在 python3 中,改变了连接库,改为了 pymysql
库,使用pip install pymysql
进行安装,直接导入即可使用
但是在 Django 中, 连接数据库时使用的是 MySQLdb 库,这在与 python3 的合作中就会报以下错误了
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
解决方法:在__init__.py
文件中添加以下代码即可。
import pymysql
pymysql.install_as_MySQLdb()
额,找了一下却没有找到 install_as_MySQLdb() 这个方法的源码,不过顾名思义应该是让 Django 把 pymysql 当成 MySQLdb 来使用吧