Django学习 Day8

news2025/1/17 0:15:45

1.查询语句

主要目的是学习在ORM中使用条件查询
Filter(条件)
语法:

MyModel.objects.filter(属性1=值1,属性2=值2)

作用:返回包含此条件的全部数据集
返回值:QuerySet容器对象,内部存放MyModel实例。
说明:当多个属性在一起时为:“and”关系。即属性值1=值1和属性值2=值2两个条件都需要满足。

在这里插入图片描述

通过返回对象的query方法的__str__()方法,能够得到我们执行的sql语句。
在这里插入图片描述

Exclude(条件)
语法:MyModel.objects.exclude(条件)
作用:返回不包含此条件的全部数据集
示例:
查询id=1且定价大于9.8以外的全部图书
在这里插入图片描述

get(条件)
语法:MyModel.objects.get(条件)
作用:返回满足条件的唯一一条数据
说明:该方法只能返回一条数据
查询结果多于1条数据那么会抛出Model.MultipleObjectsReturned异常。
查询结果如果没有数据则抛出Model.DoesNotExist异常。

在这里插入图片描述

2.非等值的过滤查询

如果需要查询所有id大于3的书籍信息,那么需要通过查询谓词进行参数定义。
定义:通过查询谓词能够在查询的时候拥有更加灵活的查询条件。
说明:每一个查询谓词是一个独立的查询功能
__exact:等值匹配。
在这里插入图片描述
在这里插入图片描述

__contains:包含指定的值
在这里插入图片描述
在这里插入图片描述

__startswith:以XXX开始
在这里插入图片描述

__endswith: 以XXX结束
在这里插入图片描述

__gt:大于指定值
在这里插入图片描述

__gte:大于等于指定值
在这里插入图片描述

__lt:小于指定值
在这里插入图片描述

__lte:小于等于指定值

在这里插入图片描述
在这里插入图片描述

3.ORM的更新操作

对于单条数据的操作需要先进行一次查询操作。并对查询到的数据进行update。
1.查
通过get()得到要修改的实体对象

2.改
通过对象.属性的方式修改数据

3.保存
通过对象.save()保存数据
在这里插入图片描述
在ORM体系中,如果需要实现对批量数据的更新,需要调用QuerySet数据结构的update方法进行实现批量修改。
示例:
在这里插入图片描述

4.数据删除

通常不会轻易在业务里把数据真正删掉,取而代之的是做伪删除,即在表中添加一个布尔型字段(is_active),默认是True;
执行删除时,将欲删除数据的is_active字段置为False
注意:用伪删除时,确保显示数据的地方,均加了is_active=True的过滤查询.

单条数据的删除方法:

b1 = Book.objects.filter(id=book_id)
b1.delete()

多条数据的删除方法:

b1 = Book.objects.all()
b1.delete()

这种方式使用的是QuerySet方式进行delete方法的调用进行删除。

5.完善图书系统的删除和修改功能。

1.增加路由
在这里插入图片描述

2.编写视图函数
在这里插入图片描述
3.编写视图层

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书修改</title>
</head>
<body>
  <form action="/library/update_book/{{book.id}}" method="post">
    <table>
      <tr>
        <td>
          id
        </td>
        <td>
          <input type="text" name="id" value="{{book.id}}" disabled="disabled">
        </td>
      </tr>

      <tr>
        <td>
          name
        </td>
        <td>
          <input type="text" name="name" value="{{book.name}}">
        </td>
      </tr>

      <tr>
        <td>price</td>
        <td>
          <input type="text" name="price" value="{{book.price}}">
        </td>
      </tr>

      <tr>
        <td colspan="2">
          <input type="submit" name="submit" value="提交修改信息">
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

4.最终实现效果
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元旦礼!2022年国家高新技术企业

​近日&#xff0c;2022年度第一批高新技术企业证书已正式发放。根据《高新技术企业认定管理办法》&#xff08;国科发火〔2016〕32号&#xff09;和《高新技术企业认定管理工作指引》&#xff08;国科发火〔2016〕195号&#xff09;有关规定&#xff0c;北京市高新技术企业认定…

项目实战之旅游网(七)后台分类管理 后台产品管理(上)

目录 一.后台分类管理 二.后台产品管理&#xff08;上&#xff09; 1.产品列表 2.新增产品 3.富文本编辑器 一.后台分类管理 mapper层&#xff1a; public interface CategoryMapper extends BaseMapper<Category> { } service层&#xff1a; Service Transactio…

什么是机器视觉计算机?

机器视觉是用于通过分析视频和图像帮助计算机做出决策的硬件和软件的集成。在制造业中&#xff0c;机器视觉通常用于生产线上&#xff0c;以便在产品的每个阶段进行自动检查。机器视觉还扩展了其在高端监控和安全、生物医学成像甚至视觉引导机器人、车辆中的应用。随着视觉技术…

“虚拟试衣间”项目可行性分析报告

目录 “虚拟试衣间”项目可行性分析报告 1 引言 1.1 标识 1.2 背景 1.3 项目概述 1.3.1 软件的基本描述 1.3.2 项目开发基本描述 1.3.3 投资方 1.4 文档概述 3 可行性分析的前提 3.1 项目的要求 一、功能 二、性能 三、输出 四、输入 五、基本数据流程和处理流程 六、安全与保…

如何从0开始画出一张优秀的架构图

你好&#xff0c;我是悟空。 最近在画项目的技术架构图&#xff0c;找到了一些不错的模板&#xff0c;分享给大家~ 画图工具&#xff1a;ProcessOn。 画图技巧&#xff1a;如何从0开始画出一张优秀的架构图 文末再送 5 本书给大家&#xff01; 业务架构图 定义&#xff1…

深圳东方英文书院顺利通过IB五年评估

2021年12月中旬&#xff0c;国际文凭组织&#xff08;IB&#xff09;正式发布官方的评估报告&#xff0c;我院国际小学第一个五年评估顺利通过&#xff01;书院整个社区一片欢腾&#xff01; 何为IB五年评估&#xff1f;为什么它对我们这么重要&#xff1f;不通过会怎么样&…

六十天训练总结

终于啊&#xff0c;六十天说长不长说短不短&#xff0c;但是按时坚持下来的人也确实是少&#xff0c;非常高兴自己能够做到打卡标语的那样&#xff08;完美坚持&#xff09; 要总结的话&#xff0c;东西还是很多的 开了个目录来存放各个题目&#xff0c;并且道题目都有自己看来…

远程桌面控制工具---NoMachine踩坑记录

NoMachine for mac是一款免费的远程桌面访问工具&#xff0c;这款软件的连接到远程桌面后延迟可以非常低&#xff0c;NX协议在高延迟低带宽的链路上提供了近乎本地速度的响应能力&#xff0c;打破空间和时间的障碍&#xff0c;让您的桌面环游世界。 1.环境配置 服务端&#x…

客快物流大数据项目(一百零一):实时OLAP开发

文章目录 实时OLAP开发 一、实时ETL处理 二、SparkSQL基于DataSourceV2自定义数据源

ABAP Function ALV 使用教程

Function ALV 是实现最简单,使用频率最高的报表 使用Function ALV的关键就是调用SAP标准的程序 REUSE_ALV_LIST_DISPLAY 简单实现: 生成报表 示例代码&#xff1a; REPORT ZABAP_FUNCTION_ALV.DATA gt_itab TYPE TABLE OF SFLIGHT.SELECT * FROM SFLIGHT INTO TABLE gt_it…

线程数,512是否合理?

Web-Server有个配置&#xff0c;工作线程数。Service一般也有个配置&#xff0c;工作线程数。经验丰富的架构师&#xff0c;懂得如何配置这些参数&#xff0c;使得系统的性能达到最优&#xff1a;有些业务设置为CPU核数的2倍&#xff0c;有些业务设置为CPU核数的8倍&#xff0c…

Sringboot2整合shiro实现登录认证和记住我功能

Sringboot2整合shiro实现及登录认证和记住我 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生…

resolution-robust large mask inpainting with fourier convolutions

Resolution-robust Large Mask Inpainting with Fourier Convolutions(2021)_studyeboy的博客-CSDN博客_分辨率稳健的大掩膜修复[Paper] Resolution-robust Large Mask Inpainting with Fourier Convolutions(2021)[Code]saic-mdal/lama基于傅里叶卷积的分辨率稳健的大型掩码修…

数据结构之排序【归并排序和快排的顶级优化和快排的三种原理的实现及分析】 内含动态演示图

文章目录引言&#xff1a;1.归并排序(MergeSort)2.快速排序的优化&#xff08;顶级优化&#xff09;3.快速排序的三种思路的代码实现及分析4.归并排序和快排第3原理的测试引言&#xff1a; 刚刚去回顾了一下递归实现的几个小代码&#xff0c;感觉递归真的是很神奇的一个东西&a…

C# StringBuilder

StringBuilder位于命名空间System.Text下&#xff0c;使用前需引入 using System.Text; StringBuilder的构造 new StringBuilder(string value) StringBuilder sb1 new StringBuilder("www.abc.com"); 利用构造函数创建一个值为“www.abc.com”的StringBuilder…

解决Ubuntu不能上网以及无法远程连接Ubuntu

本文环境 物理机OS&#xff1a; Windows10 专业版 虚拟机平台&#xff1a; VMware Workstation 16 Pro 虚拟机OS&#xff1a; Ubuntu 20.04 相信大家在使用Ubuntu中也有遇到不能上网&#xff0c;我也是尝试了很多的方法都不行&#xff0c;终于找到了一种可行的方法。 步骤…

测试开发应该具备的六大能力

前言 前几天一个前同事找我聊了个问题&#xff1a;一个好的测试开发同学需要具备哪些能力&#xff1f;我思考了一下&#xff0c;给了他如下答复&#xff1a; 从我工作中接触到的测试开发&#xff0c;以及面试测试开发候选人时问的问题&#xff0c;我将自己对测试开发这个岗位…

Chrome插件开发

1.什么是 Chrome 插件 谷歌浏览器插件是一种小型的定制浏览器体验的程序&#xff0c;通过插件可以自定义浏览器的一些行为来适合个人的需求&#xff0c;例如上面的查看服务器状态插件。 在应用商店中下载下来的插件基本上都是以.crx 为文件后缀&#xff0c;该文件其实就是一个…

实验一 课本第三章MongoDB数据库操作3.1-3.7

一、实验目的&#xff1a; 掌握MongoDb的部署 熟悉数据库和集合操作 二、实验环境&#xff1a; 一台运行的计算机 Linux平台 SecureCRT平台 三、实验内容&#xff1a; 3.1MongoDB部署 1.MongonDb部署&#xff08;windows平台&#xff09; &#xff08;1&#xff09;下载Mongo…

Node环境安装

Node的版本管理工具工具介绍gnvm官网指出特色的地方安装验证配置与使用配置文件内容命令使用nvm安装脚本命令下载请求文件下载验证配置文件使用n安装使用Fast Node Manager (fnm)安装使用工具介绍 本文介绍四款 Node 版本管理工具&#xff0c;用于下载和切换对应的 Node 与 Npm…