Django中的ORM对数据库进行增删改查
程序员文章站
2022-05-07 12:43:51
...
models.py中的类如下所示:
class Student(models.Model):
student_id = models.CharField(max_length=20,primary_key=True) #身份证号:主键
student_name = models.CharField(max_length = 20) #姓名
student_addr = models.CharField(max_length=20) #地址
student_tel = models.CharField(max_length=20) #电话
1、增加数据
方法一:
#POST请求获得的是字典,所以需要使用get()
name = request.POST.get("student_name") # 获取用户输入的姓名
id = request.POST.get("student_id") # 获取用户的学号
address = request.POST.get("student_address") # 获取用户的地址
telephone = request.POST.get("student_telephone") # 获取用户的电话
Student.objects.create(student_name=name, student_id=id, student_addr=address,
student_email=email,student_tel=telephone) # 向student表中添加一条数据
方法二:
stu1 = Student(student_name=name, student_id=id, student_addr=address,
student_email=email,student_tel=telephone)
stu1.save() #flush到数据库中
2、删除数据
1)删除满足特定条件的数据
#因为是通过href中的url直接传的参数,所以要用GET请求方式
<a href="/return_book?student_id={{ record.id }}" ........></a>
student_id = request.GET.get("student_id")
Student.objects.filter(student_id=student_id).delete() # 点击退订按钮后,删除该用户的订阅信息
2)删除所有数据(一般不这样干)
Student.objects.all().delete()
3、更改数据
addr = request.POST.get("addr")
Student.objects.filter(student_tel=account).update(student_addr=addr) # 更新数据
4、查看数据
1)查询满足条件的数据
result = Student.objects.filter(student_tel=account)
2)查询全部数据
students = Student.objects.all()
3)将字段内容排序后显示
Student.objects.order_by('student_id')
4)将字段内容逆序后显示结果
Student.objects.order_by('-student_id')
5)限制数据条数
Student.objects.filter(student_addr='河北省')[0] # [0]取第一条记录,[0:2]取前两条记录
Student.objects.filter(student_addr='河北省').order_by("‐age")[0]
#切片不支持负数