django的ORM操作MySQL数据库
程序员文章站
2024-03-14 12:24:22
...
1.配置
在应用之前要先进行配置,因为生成django项目之后默认的数据库不是mysql
(1)配置数据库
修改settings文件中的DATABASES
默认的状态:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
可以看到默认的数据库是sqlite3,将其改为mysql,如下所示:
DATABASES = {
'default': {
# 使用的数据库类型,python支持各种数据库
'ENGINE': 'django.db.backends.mysql',
# 注意,NAME是连接使用的数据库名称
'NAME': 'stus',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1'
}
}
(2)建立数据模型
在app下的models.py中进行修改
models文件中,已经为我们引入了models
在建立数据模型时继承自models.Model
根据需要给每个字段设置不同的Field,在数据库中就会表现为数据类型
from django.db import models
# Create your models here.
class LeaveWord(models.Model):
ID = models.IntegerField(default=0,primary_key=True)
name = models.CharField(max_length=20, null=False)
email = models.EmailField(null=False, default='aaa@qq.com')
content = models.TextField(max_length=256)
address = models.CharField(max_length=100, null=True, blank=True)
常见的参数
- default 指定默认值
- primary_key = True设置主键
- null=’False’非空
- max_length 长度,int默认为11
- blank=True字段数据为空
(3)生成数据库变更文件
打开run manage.py task执行makemigrations
或在Terminal中输入python manage.py makemigrations
(4)执行migrate命令,即执行数据库变更文件
没有出现异常则此时数据表已经创建成功
表名默认为”app名_数据模型类名”(通过class Meta的db_table可以更改),在数据库中可以查看到,
并且创建一些其他的数据表,是django其他模块所需的表
2. 应用
所做的一切无非都是为了基本的增删改查操作,只是不再需要直接写sql语句,而是通过对象的操作来映射到数据库。
(1)查询
需要引入models中我们建立的模型类,假设此时model是实例化后的对象
取值只需要 对象.属性名
- model.object.all() 全部数据 返回一个列表queryset
- model.order_by() 可以根据某个字段进行排序,默认为顺序,在这个字段前加上 - 则为倒序
- model.object.get() 获取一个指定条件的对象
- model.object.filter(id__dt = 1) 返回指定条件的对象,返回列表, 注意,大于:id__gt, 小于:id__lt,大于等于:id__gte,小于等于:id__lte
(2)修改
修改的话就和对象属性的变更一样,查询到结果之后不管返回的是一个对象还是一个列表(列表中也是对象),都能直接 对象.属性名 进行更改,注意更改之后需要执行save()函数,以对变更做出提交和保存。
(3)添加
添加一行数据在这里就是建立一个对象,添加的形式有三种:
- 直接实例化一个model对象,给各个属性值进行赋值后,执行save函数保存。
- create创建对象之后,会将对象信息直接保存到数据库
- get_or_create 先获取是否有该数据,如果没有则添加,同样不需要
(4)删除
删除的操作和修改一样基于查询后得到的对象
下面的语句删除了id为1的数据
model.objects.get(id=1).delete()
推荐阅读
-
django的ORM操作MySQL数据库
-
Django——ORM数据库连接操作
-
5个步骤完成mysql表结构的操作
-
关于IDEA链接mysql数据库,测试连接失败, serverTimezone(服务器时区) 报错的解决办法
-
Python3 sqlacodegen 根据已有数据库生成 ORM 使用的 model.py
-
Python的ORM框架SQLAlchemy使用入门(二)【连接MySql数据库】
-
php操作access数据库的方法详解
-
解决ssh无法连接数据库,ubuntu下mysql无法重启的问题!!!
-
【Java】Java连接Mysql数据库的demo示例
-
通过idea中的Javaweb连接本地mysql数据库