Django之mysql表单操作

在Django之ORM模型中总结过django下mysql表的创建操作,接下来总结mysql表记录操作,包括表记录的增、删、改、查。1.添加表记录对于表单的添加有三种方式:2.删除表记录m

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  在Django之ORM模型中总结过django下mysql表的创建操作,接下来总结mysql表记录操作,包括表记录的增、删、改、查。

1. 添加表记录

class UserInfo(models.Model):
    user = models.CharField(max_length=16)
    pwd = models.CharField(max_length=32)

  对于表单的添加有三种方式:

#方法1
obj= models.UserInfo(user="zhangsan",pwd="888888")
obj.save()
#方法二:
dic = {"user":"zhangsan", "pwd":"888888"}
modles.UserInfo.objects.create(**dic)
# 方式三:
models.Student.objects.create(user="shangsan", pwd="888888")

2. 删除表记录

  models.UserInfo.objects.filters(user=”zhangsan”).delete()

3. 修改表记录

  models.UserInfo.objects.filter(user=”password”).update(pwd=”666666″)

  或

  obj = models.UserInfo.objects.get(user=”zhangsan”)

  obj.pwd= “666666”

  obj.save

  注意这使用的是get(),get()如果找不到就会报错,如果有多个值也会报错,只能拿一个值

4. 查询表记录

4.1 查询相关的API

(1)all()

  models.UserInfo.objects.all()   // 获得所有

  >>>> <QuerySet [<UserInfo: UserInfo object (1)>]>

(2)filter()

  可以实现且关系,但是或关系需要借助Q查询实现,查不到的时候不会报错

  models.UserInfo.objects.filter(user=”zhangsan”)

  models.UserInfo.objects.filter(user=”zhangsan”,pwd=”888888″)

print(models.UserInfo.objects.filter(user="zhangsan").values())
>>>> <QuerySet [{'id': 2, 'user': 'zhangsan', 'pwd': '888888'}]>
print(models.UserInfo.objects.filter(user="zhangsan").values()[0]["pwd"])
>>>> 888888

(3)get()

  如果找不到会报错,如果有多个值也会报错,只能获得有一个值的

  models.UserInfo.objects.get(user=”zhangsan”)

  models.UserInfo.objects.get(user=”zhangsan”,pwd=”888888″)

print(models.UserInfo.objects.get(user="zhangsan"))
UserInfo object (2)

(4)exclude()

  排除条件,查看除了()的其他信息

  models.UserInfo.objects.exclude(user=”zhangsan”)

(5)values()

  返回QuerySet对象,把对象转换为字典的形式

print(models.UserInfo.objects.filter(user="zhangsan").values("user"))
>>>> <QuerySet [{'user': 'zhangsan'}]>
print(models.UserInfo.objects.filter(user="zhangsan").values("user", "pwd"))
<QuerySet [{'user': 'zhangsan', 'pwd': '888888'}]>

(6)values_list()

  返回QuerySet对象,把对象转换为元祖的形式

print(models.UserInfo.objects.filter(user="zhangsan").values_list())
>>>> <QuerySet [(2, 'zhangsan', '888888')]>

(7)order_by()

  排序

models.UserInfo.objects.all().order_by("user")

 (8)reverse()

  反序

  models.UserInfo.objects.all().reverse()

(9)distinct()

  去重

  models.UserInfo.objects.filter(user=”zhangsan”).values(“user”).distinct()

(10)count()

  数量

(11)first()

(12)last()

(13)exists()

  查看有没有记录,如果有就返回True,没有则返回False,并不需要判断所有的数据

4.2 双下划线之表单查询

  看下面的例子后应该就很清除了

models.Tb1.objects.filter(id__lt=10, id__gt=1)   # 获取id小于1 且 大于10的值
 
models.Tb1.objects.filter(id__in=[11, 22, 33])   # 获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11, 22, 33])  # not in
 
models.Tb1.objects.filter(name__contains="ven")  #包括ven的
models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感
 
models.Tb1.objects.filter(id__range=[1, 2])      # 范围bettwen and
 
startswith,istartswith, endswith, iendswith 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120064.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 开曼群岛的中国大企业(Maluku_Islands)

    http://baike.baidu.com/view/29653.htm开曼群岛百科名片  开曼群岛地理位置开曼群岛(有时也译为凯门群岛)是英国在西加勒比群岛的一块海外属地,由大开曼、小开曼和开曼布拉克3个岛屿组成。开曼群岛是世界第四大离岸金融中心,并是著名的潜水胜地。 查看精彩图册

    2022年4月11日
    64
  • pycharm运行卡死_pycharm调试快捷键

    pycharm运行卡死_pycharm调试快捷键就跑着跑着莫名其妙卡住,具体表现在左下角的Debugger一片空白,变量监视也啥都没有原链接:https://www.jianshu.com/p/8a8a93c330b5感谢这位大佬!我们在使用PyCharm进行Python代码调试查看具体变量时,会随机遇到一直显示collectingdata,到最后报错Timeoutwaitingforresponse,在界面中看不到变量内部的内容,导致Debug卡死的问题。在PyCharm中,打开Setting界面,在如下设置项中勾选“Geventc

    2022年8月28日
    0
  • PHP如何解决网站大流量与高并发的问题(四)「建议收藏」

    PHP如何解决网站大流量与高并发的问题(四)

    2022年2月9日
    38
  • docker(6)镜像的使用

    docker(6)镜像的使用前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月28日
    5
  • cloudsim4.0中CloudSimExample2分析

    cloudsim4.0中CloudSimExample2分析CloudSimExample2展示如何创建一个只含一个主机的数据中心,并在其上运行两个云任务。(两个云任务运行在具有相同计算能力的虚拟机上,即两个云任务的执行需要相同的时间)首先附上CloudSimExample1全部代码:/**Title:CloudSimToolkit*Description:CloudSim(CloudSimulation)…

    2022年10月13日
    1
  • 泰克|安捷伦|普源|PICO示波器程控软件二次开发NS-Scope

    泰克|安捷伦|普源|PICO示波器程控软件二次开发NS-Scope*主要功能:硬件连接;参数配置;运行参数;数据查询。*程控对象:示波器。*程控接口:兼容市面上所有具有GPIB、USB、RS232、LAN、RS485、TTL任意一种程控接口的示波器。*仪器兼容性:泰克Tektronix、是德科技Keysight、普源Rigol、力科、罗德与施瓦茨R&S等品牌示波器。1.软件概述>>为了解决示波器测试操作流程繁琐、参数配置复杂等问题,Namisoft开发的NS-Scope示波器自动化测试程控软件,通过对示波器的程序控制,…

    2022年10月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号