模型层单表操作

模型层单表操作

单表操作

例:

1. 单表的查询

1. 单表查询所有用户:models.Book.objects.all()
得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]
?
2. render(request, ‘booklist.html‘, {‘book_list‘: ret})
?
3. 模板里: {% for user in book_list %}
                #要循环的内容
                {{book.name}}
            {% endfor%}

4. get请求携带参数:
    http://127.0.0.1:8000/deleteuser/?id=1
    后台取值:request.GET.get(‘id‘)
    request.GET[‘id‘]

5. 前台post提交的数据取值:name=request.POST.get(‘name‘)
查询的API
all():                  查询所有结果

filter(**kwargs):       它包含了与所给筛选条件相匹配的对象

get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象                        超过一个或者没有都会抛出错误。

exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象

order_by(*field):       对查询结果排序(‘-id‘)

reverse():              对查询结果反向排序

count():                返回数据库中匹配查询(QuerySet)的对象数量。

first():                返回第一条记录

last():                返回最后一条记录

exists():              如果QuerySet包含数据,就返回True,否则返回False

values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
                       model的实例化对象,而是一个可迭代的字典序列

values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列

distinct():            从返回结果中剔除重复纪录
基于双下划线的模糊查询
Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__gte=100)
Book.objects.filter(price__lte=100)
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__contains="python")
Book.objects.filter(title__icontains="python")
Book.objects.filter(title__startswith="py")
Book.objects.filter(pub_date__year=2012)

2. 单表的删除

关键字: delete()
models.Book.objects.filter(id=id).delete()

3. 单表的增加

两种方式:
    1 book_obj=Book.objects.create(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")

    2 book_obj=Book(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
book_obj.save()

4. 单表的修改

关键字: update()
Book.objects.filter(title__startswith="py").update(price=120)

前后端交互

<form action="/updateuser/?id={{ book.id }}" method="post">
   <p><input type="hidden" name="id" value="{{ book.id }}"></p>
   <p>书名: <input type="text" name="name" value="{{ book.name }}"></p>
   <p>价格: <input type="text" name="price" value="{{ book.price }}"></p>
   <p>出版社: <input type="text" name="publish" value="{{ book.publish }}"></p>
   <input type="submit" value="提交">
</form>

原文地址:https://www.cnblogs.com/zhangpang/p/9975102.html

时间: 2024-10-07 02:58:46

模型层单表操作的相关文章

Django之模型层-多表操作

多表操作 数据库表关系 一对多:两个表之间的关系一旦确定为一对多,必须在数据多的表中创建关联字段 多对多:两个表之间的关系一定确定为多对多,必须创建第三张表(关联表) 一对一:一旦两个表之间的关系确定为一对一,在两种表中任意一张表中建立关联字段unique ORM生成关联表模型 class Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=32) pric

Django-5.2 模型层 多表操作

7.3 多表操作 一.创建模型 实例:我们来假定下面这些概念,字段和关系作者模型:一个作者有姓名和年龄.作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one)出版商模型:出版商有名称,所在城市以及email.书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联

Django框架(模型层:单表查询)

创建表 1.创建模型 创建名为book的app,在book下的models.py中创建模型 from django.db import models # Create your models here. class Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64) pub_data = models.DateField() price = model

Django基础五之django模型层(一)单表操作

目录 一 ORM简介 二 单表操作 一.创建表 创建模型 2 更多字段和参数 3 settings配置 4.自定义字段(了解) 二.添加表纪录 方式1 方式2(用的多) 方式3:批量插入 三.查询表纪录 查询API(都是重点) 基于双下划线的模糊查询 四.删除表纪录 五.修改表纪录 三 章节作业 1 图书管理系统 2 查询操作练习 四 xxx 本节目录 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,

Django模型层之单表操作

Django模型层之单表操作 一 .ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图一^①^ 但是直接编写原生sql语句会存在两方面的问题,严

model,单表操作

一. model Django提供了一个抽象层(“Model”)来构建和管理Web应用程序的数据. django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 关系对象映射(Object Relational Mapping,简称ORM),  它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动. 二. 单表操作 <一>. 表的创建

Django——模型基础(单表)

1.ORM 在MVC或者说MTV设计模式中,模型(M)代表对数据库的操作.但操作数据库需要专门的SQL语句,而Python程序员不是专业的DBA,写的SQL语句可能有点次,于是就有人想到用python语法来操作,这就是ORM. ORM 即:对象—关系—映射(从https://www.cnblogs.com/huang-yc/p/9652935.html盗来一张图,顺便吹下这位博主!) 简单又不太专业的说就是通过映射关系使得一个python语句对应一个SQL语句,这样python程序员无需关心OR

Django开发:(3.1)ORM:单表操作

MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是"对象-关系-映射"的简称. Mysql中的表对应python中的类,表的字段对应类的属性,表的记录对应类的实例化的对象 单表操作 创建表 1. 创建模型 创建名为app01的app,在app01下的models.py中创建模型: from dj

母版,单表操作

上节回顾:(模板层) 1 模板之变量---{{ }} -支持数字,字符串,布尔类型,列表,字典---相当于对它进行了打印 -函数--->相当于加括号运行(不能传参数) -对象--->内存地址,(如果重写__str__方法,打印的就是返回的内容) 2 过滤器 -length---计算长度 -default----设默认值 -filesizeformat---把数字转成文件大小格式 -截断字符---最少是三 -截断单词 -data----格式化日期类型 -add-----数字,字符串相加 -sli