Django之mysql表单操作
在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()
排除条件,查看除了()的其他信息
(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表单操作的更多相关文章
- Django之form表单操作
小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 ...
- Django使用普通表单、Form、以及modelForm操作数据库方式总结
Django使用普通表单.Form.以及modelForm操作数据库主要应用于增删该查的情景下,流程通用如下,只是实现方式不一样: 进入填写表单页面: 在表单页面填写信息,并提交: 表单数据验证 验证 ...
- Django的form表单
html的form表单 django中,前端如果要提交一些数据到views里面去,需要用到 html里面的form表单. 例如: # form2/urls.py from django.contrib ...
- 转载:Django之form表单
转载: 一.使用form类创建一个表单 先定义好一个RegForm类: forms.py from django import forms # 导入forms类 class NameForm(form ...
- Django 的ORM 表间操作
Django之ORM表间操作 之前完成了简单的数据库数据增加操作.这次学习更多的表间操作. 单表操作 增加 方式一 b = Book(title="Python基础", pub ...
- Django中的表单
目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django 还是 PHP还是JSP还是其他语言.只要把 inpu ...
- 第二十二章 Django会话与表单验证
第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
- Django:提交表单时遇到403错误:CSRF verification failed
Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...
随机推荐
- master: Error: JAVA_HOME is not set and could not be found.问题解决
- Resharper 快捷键
编辑 Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成 Ctrl + Alt + Space代码完成 Ctrl + P 显示参数信息 Alt + Insert ...
- 服务端Job调度程序
GIT地址:https://github.com/youbl/PlanServer
- vue2.0过度动画
vue在插入.更新或移除dom时,提供了多种不同方式的应用过度效果. 包括以下工具: 在css过渡和动画中自动应用class. 可以配合使用第三方css动画库,如animate.css 在过渡钩子函数 ...
- 如何选择合适的MySQL数据类型
一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...
- OpenVpn部署使用easy-rsa-3.0
OpenVpn简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网络访问 ...
- bzoj 2748: [HAOI2012]音量调节
2748: [HAOI2012]音量调节 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 872 Solved: 577[Submit][Status] ...
- SpringBoot 通用Error设计
在项目中需要设计统一的错误消息,通常使用枚举类定义"错误码"与"错误消息": 并且也可以做错误消息自定义. 定义通过错误接口类:CommonError publ ...
- Python 面向对象的三大特性:封装,继承,多态
# 面向对象的三大特性:封装,继承,多态 # 继承的影响:资源的继承,资源的使用,资源的覆盖,资源的累加 # 资源的继承,在Python中的继承是指能使用父类的资源,而不是说在子类也复制一份父类代码到 ...
- PAT1036. Boys vs Girls (25)
#include <iostream> #include <algorithm> #include <vector> using namespace std; st ...