在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. linux 基础知识总结2

    1. 设定文件text的属性为:文件属主(u) 增加写权限;与文件属主同组用户(g) 增加写权限;其他用户(o) 删除执行权限:chmod ug+w,o-x log2012.log     权限选择参 ...

  2. 微信小程序获取验证码倒计时

    getVerificationCode: function() { var that = this; var currentTime = that.data.currentTime; that.set ...

  3. UILable 的 属性设置

    //UILable的大小自适应实例 UILabel *myLable = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];//设定位置与大小 [m ...

  4. JavaScript传递的是引用的副本

    看例子 var test1 = function (args) { args.name = "lcc2"; args = { name: "lcc3" }; } ...

  5. JavaWeb Listener

    1. 监听器概述 1.1. 什么是监听器 做过Swing或者AWT图像界面Java程序开发的话,应该对Listener与Event非常熟悉.Swing或者AWT中通过Listener与Event来处理 ...

  6. Oracle loop、while、for循环

    Loop循环 Declare p_sum ; p_i number; Begin p_i :; Loop p_sum := p_sum + p_i; p_i :; ) then SYS.Dbms_Ou ...

  7. autofac.webapi2

    quick start https://autofaccn.readthedocs.io/en/latest/integration/webapi.html#quick-start To get Au ...

  8. Redis 后台运行

    编辑配置文件 vim {redis_home}/redis.conf 修改daemonize  (默认为no,修改为yes) 启动redis{redis_home}/src/redis-server ...

  9. 编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中,a.txt 文件中的单词用回车符分隔,b.txt 文件中用回车或空格进行分隔。

    package IO; import java.io.*; public class test { public void connectWords(File file1, File file2, F ...

  10. Windows下使用MinGW在命令行编译运行C++程序

    之前学习C语言的时候都是用IDE类似CodeBlocks的工具写完直接编译运行的,今天突然心血来潮,自己下一个编译器,在命令行下,编译运行C++程序,了解一下编译过程. 一.安装编译器 首先你需要下载 ...