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

1. 添加表记录

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

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

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

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': , 'user': 'zhangsan', 'pwd': ''}]>
print(models.UserInfo.objects.filter(user="zhangsan").values()[]["pwd"])
>>>>

(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 ()

(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': ''}]>

(6)values_list()

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

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

(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=, id__gt=)   # 获取id小于1 且 大于10的值

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

Django之mysql表单操作的更多相关文章

  1. Django之form表单操作

    小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 ...

  2. Django使用普通表单、Form、以及modelForm操作数据库方式总结

    Django使用普通表单.Form.以及modelForm操作数据库主要应用于增删该查的情景下,流程通用如下,只是实现方式不一样: 进入填写表单页面: 在表单页面填写信息,并提交: 表单数据验证 验证 ...

  3. Django的form表单

    html的form表单 django中,前端如果要提交一些数据到views里面去,需要用到 html里面的form表单. 例如: # form2/urls.py from django.contrib ...

  4. 转载:Django之form表单

    转载: 一.使用form类创建一个表单 先定义好一个RegForm类: forms.py from django import forms # 导入forms类 class NameForm(form ...

  5. Django 的ORM 表间操作

    Django之ORM表间操作   之前完成了简单的数据库数据增加操作.这次学习更多的表间操作. 单表操作 增加 方式一 b = Book(title="Python基础", pub ...

  6. Django中的表单

    目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django  还是 PHP还是JSP还是其他语言.只要把 inpu ...

  7. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...

  8. 基于JQuery的前端form表单操作

    Jquery的前端表单操作:     jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...

  9. Django:提交表单时遇到403错误:CSRF verification failed

    Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...

随机推荐

  1. maven项目中如何创建web.xml

    在web工程创建时创建web.xml:用Eclipse新建一个web项目没有自动生成web.xml 在创建maven工程时,大多没有创建web.xml文件,web.xml路径:src/main/web ...

  2. xx-net***简明使用教程

    简介 继psiphon3.lantern.shadowsocks后,翻 土啬 界就来个新角色:xx-net 这张图是.2016.8.30日Google最新的搜索结果,还是可以看出这款工具的火爆程度的, ...

  3. Python3.x:定时自动发送邮件

    定时自动发送邮件 一.简述 python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email ...

  4. HTML5堆木头游戏

    在线演示 本地下载

  5. ==与equals的各种情况

    == 能用于基本类型之间.基本类型与引用类型之间及相同引用类型之间,不能用于不同引用类型之间 对于基本类型,取值来对比,对于引用类型,取地址来对比 int a= 1; Integer b= 1; Sy ...

  6. 开源流量分析系统 Apache Spot 概述(转)

    原文地址http://blog.nsfocus.net/apache-spot/ Apache Spot 是一个基于网络流量和数据包分析,通过独特的机器学习方法,发现潜在安全威胁和未知网络攻击能力的开 ...

  7. redis通过命令批量删除key

    需求:想删除 notify_ 开头的所有key redis-cli KEYS "notify_*" | xargs redis-cli DEL 通过 notify_* 来匹配

  8. 【bzoj4806~bzoj4808】炮车马后——象棋四连击

    bzoj4806——炮 题目传送门:bzoj4806 这种题一看就是dp...我们可以设$ f[i][j][k] $表示处理到第$ i $行,有$ j $列没放炮,$ k $列只放了一个炮.接着分情况 ...

  9. TCP_AIO_Server_ZC_01

    ZC: 这个例子是,1个skt 投递 1个未决的接收操作 1.package aio.Client; 1.1.这是一个 测试的客户端的代码: package aio.Client; import ja ...

  10. OWIN初探

    什么是 OWIN ? OWIN 的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一 ...