目录
1.在MySQL中创建好数据库,Django项目不会创建数据库,只会根据models.py中的模型类创建对应的表。
3.找到项目文件下或app(应用程序)下的__init__.py 配置成MySQL
4.在对应的app(应用程序)下的 models.py 文件中编写数据库表对应的类
Django创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置。
1.在MySQL中创建好数据库,Django项目不会创建数据库,只会根据models.py中的模型类创建对应的表。
2.修改settings.py中原有的数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',#库名
'USER': 'root',#用户名
'PASSWORD':'xxxxxx',#密码
'HOST':'127.0.0.1',
'POST':'3306',
}
}
3.找到项目文件下或app(应用程序)下的__init__.py 配置成MySQL
import pymysql
# 将数据库引擎调整为MySQL
pymysql.install_as_MySQLdb()
4.在对应的app(应用程序)下的 models.py 文件中编写数据库表对应的类
from django.db import models
# Create your models here.
class test_mysql(models.Model): #test_mysql就是表名,会自动创建这场表
# AutoField 表示是int数据类型,primary_key 表示主键,null表示是否可为null
id = models.AutoField(primary_key=True,null=False)
# CharField 表示varchar数据类型,必须给 max_length 赋值,表示字符长度
addr = models.CharField(max_length=255,null=False)
这里运用的就是ORM对象关系映射,ORM(Object Relational Mapping) 对象关系映射:通过使用描述对象和数据库之间映射的方式,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式,通俗来讲,能够让一个不会数据库操作的小白也能通过Python面向对象语法,句点符(对象.属性)来简单快捷的操作数据。
5.数据库迁移和同步
在cmd或pycharm中的Terminal窗口执行数据库迁移(同步)命令,这一步会自动创建一些操作记录表
# 将对数据库的操作记录到项目中的migrations文件夹下的文件中,此时并没有同步到到数据库
python3 manage.py makemigrations
执行到这里报错,pymysql和MysqlClient版本不一致django.core.exceptions.ImproperlyConfigured,降低Django版本到4.1.7解决
将对数据库的操作同步到MySQL中,这一步会自动创建models中写好的表
python3 manage.py migrate
一定要在对应的项目文件下执行这两条命令,这两条命令一般情况下,是成对出现的,缺一不可,在开发过程中,只要修改了models.py 中跟数据库相关的代码,就必须重新执行这两命令,以保证数据库中的记录跟models.py中一致。
6.sql基本操作
#增
test_mysql.objects.create(id='1',addr='a') #test_mysql为models中对应的表名,括号内为对应表中的字段和值
#删
test_mysql.objects.filter(id='2').delete()
#改
test_mysql.objects.filter(id='1').update(addr='hh')
#查 filter返回的是QuerySet集合,需要遍历拿到对应的值
database_addr = test_mysql.objects.filter(id='1')
for da in database_addr:
test_value = da.addr
下一章:
四、Django编写简单的接口实现前后端交互_郝家伙~的博客-CSDN博客
参考:django连接mysql查询获取数据_Django 链接MySQL及数据操作_陈奶爸-短视频的博客-CSDN博客