Django 连接Mysql数据库教程
接触Django的童鞋们都知道,Django默认的数据库为Sqlite,那么怎么使用Mysql数据库进行连接呢,下面给大家详细介绍
- 首先搭建好Python环境和Django工程,创建app
创建工程:django-admin startproject 工程名
创建app
cd mysite
python manage.py startapp app01
python manage.py startapp app02
- 在Django项目中安装pymysql和mysqlclient
pip install pymysql
pip install mysqlclient
这里大家要注意,一定要安装在当前项目的site-packages中
例如,我的Django项目在E:/django2,那么pymysql和mysqlclient安装在E:/django2/venv/Lib/site-packages中
- 配置setting文件
首先在INSTALLED_APPS 中加入你的app名,我的app名为app01,app02
- 在setting中配置Mysql数据库
NAME:数据库的名字
HOST:连接的主机,默认为本地
PORT:连接的端口,默认为3306
USER:用户登录数据库的用户名
PASSWORD:登录数据库所使用的密码 - 在app中写表结构
在你在创建数据库的app中配置models文件
我这里给大家用app02进行举例:
创建一个作者的类,里面有三个参数,分别是姓,名,邮箱
使用的是char类型,最大长度为32,邮箱使用的是邮箱的数据类型,这里的数据类型有很多种,下面我给出大家Django官方文档,大家可以详细学习
Django models 数据类型官方文档 - 配置admin文件
- 登录本地mysql数据库,创建刚才setting中命名的数据库,我命名的是django2
8.生成配置文件
python manage.py makemgirations #生成配置文件
python manage.py migrate #根据配置创建数据库相关东西
这两行代码在地方敲呢,有两种方式- 如果你使用的是Pycharm的话,可以点击Terminal,会自动进入该工程下,然后打那两行代码
- 如果你用的不是Pycharm的话,进入cmd,找到你的Django工程的目录下,打那两行代码
注意:如果在打完 python manage.py makemgirations 后报错,下面我给出常见的几种报错的解决办法 - 报错1: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
具体报错内容:
- 如果你使用的是Pycharm的话,可以点击Terminal,会自动进入该工程下,然后打那两行代码
raise ImproperlyConfigured('mysqlclient 1.x.xx or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.
解决办法:
进入Django工程目录/Lib/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__)
4. 报错2:AttributeError: 'str' object has no attribute 'decode'
报错内容:
File "xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
解决办法:
打开工程项目下的\lib\site-packages\django\db\backends\mysql\operations.py 把146行的 decode 修改为 encode 即可
- 创建超级用户,用于后台管理
python manage.py createsuperuser 用户名
输入邮箱,密码,创建完成
- 运行manage.py文件
当出现这个页面时,说明连接成功 - 在网页上输入127.0.0.1:8000/admin/ 回车,进入Django网页管理入口,输入用户名和密码进行登录
- 随后就显示数据库的网页管理平台