django数据基本操作及各个模块介绍
1.数据操作
表字段的增删
增加字段
在models.py文件中新增字段后要选择两种赋值方式
1.直接提供默认值 default = 'aaa'
2.设置修改字段可以为空 null = True
修改或删除字段
修改就直接在原来的字段上进行修改,删除就直接把要删除的字段注释或者直接删除,然后执行数据迁移命令,
注意:不要轻易的注释models.py中任何跟数据库相关的代码
数据的增删该查
首先要在views.py中导入 models文件
数据的查询
1.get()
使用时要导入模块
from django.shortcuts import render,redirect,HttpResponse
from app01 import models
语法:
model.表名.objects.get('字段名'=值)
特点:
1.条件存在的情况下获得的是一个可以看作成列表的数据,列表里面放的才是我们要的数据对象
2.条件不存在的情况下,会直接报错,所以该方法不常用.
2.filter()
语法:
res = models.表名.objects.filter(username=username) # select * from userinfo where username='jason' and password=123;
特点:
1.当查询条件不存在的时候 不会报错而是返回一个空
2.当条件存在的情况下 无论数据有几条返回的都是列表套对象的数据格式
3.filter可以当多个查询条件 并且是and关系
4.你可以将filter查询出来的结果当做列表去对待 支持正数的索引取值和切片 不支持负数,使用first方法取值.
# user_obj = res[0]
# user_obj = res[0:3]
# user_obj = res[-1]
user_obj = res.first() # 取queryset第一个元素
3.all()
获取用户表中的所有的数据,结果类似于列表套数据对象 里面是当前表的所有数据对象
user_queryset = models.Userinfo.objects.all()
# print(user_queryset.query) # 只有queryset对象才能够点query查询内部所对应的sql语句
# print(user_queryset)
# 将数据传递给前端页面展示给用户看
数据的增加
1.create()
语法:
user_obj = models.Userinfo.objects.create(username=username,password=password)
# insert into userinfo(username,password) values('admin','666');
# 直接将用户名和密码写入数据库
# create方法会有一个返回值 返回值就是当前被创建的数据对象
特点:
1.括号内些关键字参数的形式 创建数据
2.该方法会有一个返回值 返回值就是当前对象本身
2.利用对象点方法的方式
user_obj = User(username='jason')
user_obj.save() # 将当前对象保存到数据库中
数据的更改
1.update()
语法:
models.Userinfo.objects.filter(pk=edit_id).update(username=username,password=password)
特点:
如果找到多条数据会批量更新
2. 获取当前数据对象 然后利用对象点属性的方式 先修改数据 然后调用对象方法保存
# 不推荐你使用第二种方式 效率低 挨个重新写入一遍
edit_obj = models.Userinfo.objects.filter(pk=edit_id).first() # pk能够自动帮你查询出当前表的主键字段名
edit_obj.username = username
edit_obj.password = password
edit_obj.save()
"""update方法会将filter查询出来的queryset对象中所有的数据对象全部更新"""
数据的删除
delete()
语法:
# 获取想要删除的数据id 直接删除
delete_id = request.GET.get('delete_id')
models.Userinfo.objects.filter(pk=delete_id).delete()
特点:
批量删除