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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python输出如何换行_python不换行输入

    python输出如何换行_python不换行输入在我们常用的print()方法进行输出时,通常输出结果是整行显示出来的,这时候我们需要考虑一下,我们输出的结果需不需要换行?python学习网,大量的免费python视频教程,欢迎在线学习!不需要换行的方法也是嗯容易的的,这里就不多赘述了,来说说如何做到输出换行:常用的转义符方式:\n#-*-coding:utf-8-*-A=”来看看能不能\n换行。”print(A)输出结果来看看能不能换行…

    2025年7月18日
    6
  • Landsat8的不同波段组合说明

    Landsat8的不同波段组合说明原文地址:Landsat8的不同波段组合说明作者:ENVI-IDL中国   LandsatTM(ETM+)7个波段可以组合很多RGB方案用于不同地物的解译,Landsat8的OLI陆地成像仪包括9个波段,可以组合更多的RGB方案。   OLI包括了ETM+传感器所有的波段,为了避免大气吸收特征,OLI对波段进行了重新调整,比较大的调整是OLIBand5(0.845–0.885μm),

    2022年7月23日
    19
  • ios事件-触摸事件3(UIButton 和 pointInSide()、hitTest()、touchesBegan()、touchesMoved()、touchesEnded()的关系)

    ios事件-触摸事件3(UIButton 和 pointInSide()、hitTest()、touchesBegan()、touchesMoved()、touchesEnded()的关系)ios事件-触摸事件3(UIButton和pointInSide()、hitTest()、touchesBegan()、touchesMoved()、touchesEnded()、touchesCancelled()的关系)先看效果图本文中,凡是看到xxx(),即表示xxx是一个函数或者方法!!!事件分为事件传递和事件响应,其中,事件响应又称事件处理。具体代码ButtonVC的代码…

    2022年7月25日
    16
  • mysql实现主从复制的日志是哪种_Redis主从复制

    mysql实现主从复制的日志是哪种_Redis主从复制Mysql实现主从复制

    2022年8月13日
    7
  • Android错误之ListView加载错位_ListView图片错位

    又遇到ListView加载item时,多个item中的图片会错位的情况现象如下图,同一个人的头像显示的乱七八糟找了一张图,很好地说明了问题的原因问题原因就在于convertView的重用,当重用 convertView 时,最初一屏显示 7 条记录, getView 被调用 7 次,创建了 7 个 convertView,当 Item1 划出屏幕, Item8 进入屏幕时,这时没有为 Item8

    2022年3月11日
    46
  • nodejs

    nodejs

    2021年8月25日
    54

发表回复

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

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