django对mysql数据层的操作

本文详细介绍了在Django中如何进行数据库的增删改查操作,包括使用views.py文件创建视图函数,如student_list(),通过models.Student对象进行数据查询、过滤、排序等。此外,还涵盖了create()、delete()、update()等方法以及各种查询集的高级用法,如exclude()、values()和annotate()等。

存在问题:
django中如何对数据库进行常规的增删改查


解决方案:
python和.net还是有些区别,需要转变下思维
在项目APP中的views.py中添加相应方法

def student_list(request):
    #student_queryset=models.Student.objects.all()      #查询出所有数据
    #student_queryset=models.Student.objects.all().order_by("student_age")      #数据按某些字段排序
    #student_queryset=models.Student.objects.filter(student_name='张三')     #查询出某字段为特定值的数据
    student_queryset=models.Student.objects.exclude(student_age=18)     #查询出某字段为特定值的数据
    return render(request,'student.html',{'student_queryset':student_queryset})

增:

student_queryset=models.Student.objects.create(student_name='牛本',student_age=13)

删:

student_queryset=models.Student.objects.filter(student_name='牛本').delete()

改:

student_queryset = models.Student.objects.filter(student_name='张三').update(student_age=10)

查:

filter(**kwargs)            包含了与所给筛选条件相匹配的对象
all()                       查询所有结果
get(**kwargs)               返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都是报错
values(*field)              返回一个ValueQuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
exclude(**kwargs)           包含了与所给的筛选条件不匹配的对象
order by(*field)            对查询结果排序
reverse()                   对查询结果反向排序
distinct()                  从返回结果中剔除重复记录
values_list(*field)         与values()非常相似,返回一个元组序列,values返回一个字典序列
count()                     返回数据库中匹配的记录的数量
first()                     返回数据库中匹配的对象的第一个对象
last()                      返回数据库中匹配的对象的最后一个对象
exists()                    判断一个对象集合中是否包含指定对象,包含返回True,不包含返回False
exclude()                   排除满足条件的对象
annotate()                  使用聚合函数
dates()                     根据日期获取查询集
datetimes()                 根据时间获取查询集
none()                      创建空的查询集
union()                     并集
intersection()              交集
difference()                差集 
select_related()            附带查询关联对象
prefetch_related()          预先查询
extra()                     附加SQL查询
defer()                     不加载指定字段
only()                      只加载指定的字段
using()                     选择数据库
select_for_update()         锁住选择的对象,直到事务结束。
raw()                       接收一个原始的SQL查询

————————————————
版权声明:本文为优快云博主「菲宇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/bbwangj/article/details/79939269

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值