存在问题:
django如何连接mysql数据库
解决方案:
- 创建工程和项目APP;
- 修改Django的settings.py文件(根据自己的数据库配置信息修改);
并在setting.py文件中添加app
sql
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
'ENGINE':'django.db.backends.mysql',
'NAME':'tushu', #数据库名
'USER':'root', #用户名
'PASSWORD':'root', #密码
'HOST':'127.0.0.1',
'PORT':'3306'
- 修改__init__.py文件,配置Mysql,替换默认的数据库引擎,添加以下内容
sql
import pymysql
pymysql.install_as_MySQLdb()
- models.py文件中加入数据表创建语句
python
from django.db import models
# Create your models here.
class list(models.Model):
value_a=models.CharField(max_length=50)
value_b = models.CharField(max_length=50)
- 迁移数据到MySql
python
python manage.py makemigrations
python manage.py migrate
此时发现mysql中多出一个newweb_list的新表(名称默认是APP应用名+models.py中的类名)
此时可以给空数据库填写一些数据,方便后续查询交互验证;
- 编写url.py、视图views.py和Template中list.html三个文件后,启动django web服务,完成数据交互查询结果展示
数据库MySql查询结果:
特别注意:
此文描述的为通过models中建表后迁移到数据库中情况;
若mysql数据库中原本已经存在数据表,需要进行连接直接使用的话,可通过以下命令将数据库表自动生成到models.py文件中
python
python manage.py inspectdb > models.py
此时,会发现除了应用SPP newWeb文件中的models.py外,多了一个models2.py的文件,这个就是新生成的(包含数据库中原本所有表)。