当前位置: 首页 > news >正文

Django QuerySet对象,all()方法

all()方法

在Django中,all()方法是QuerySet对象的一个方法,用于获取模型的所有实例。

当你调用ModelName.objects.all()时,Django会生成一个SQL查询,从数据库中获取该模型的所有记录,并返回一个QuerySet对象,这个对象包含了所有的模型实例。

相当于SQL语句中如:

select * from table_name


例如,如果你有一个Post模型,你可以这样获取所有的帖子:

from .models import Post
posts = Post.objects.all()

在这个例子中,posts是一个QuerySet对象,你可以像操作列表一样操作它,例如,你可以遍历它,获取它的长度,或者对它进行切片等操作。

需要注意的是,all()方法并不会立即从数据库中获取所有的记录,而是在你第一次访问QuerySet对象时才从数据库中获取记录。

这是Django的延迟查询机制,可以避免不必要的数据库查询,提高性能。


 

1,创建应用

Test/app11

python manage.py startapp app11

2,注册应用

Test/Test/settings.py

3,添加应用路由

from django.contrib import admin
from django.urls import path, includeurlpatterns = [# ...path('app11/', include('app11.urls')),
]

4,应用添加模型

Test/app11/models.py

from django.db import modelsclass Post(models.Model):title = models.CharField(max_length=200)content = models.TextField()pub_date = models.DateTimeField('date published')

5,应用创建和执行迁移

# 创建迁移文件
python manage.py makemigrations app11# 执行迁移文件
python manage.py migrate app11

6,应用添加视图

Test/app11/views.py

from django.shortcuts import render
from .models import Postdef index(request):posts = Post.objects.all()return render(request, '11/index.html', {'posts': posts})

7,应用添加html代码

Test/templates/11/index.html

<!-- posts/index.html --><h1>我的博客</h1>
{% for post in posts %}<h2>{{ post.title }}</h2>
<h4>{{ post.content }}</h4><br/>
{% endfor %}

8,应用添加路由

Test/app11/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('index/', views.index, name='index'),
]

9,应用添加数据

Test/create_posts.py

import os
import django# 设置Django环境,需要指定settings模块
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Test.settings")
django.setup()from app11.models import Post
from datetime import datetime# 创建并保存Post对象
post = Post(title="张国荣", content="(英语:Leslie Cheung Kwok Wing,1956年9月12日—2003年4月1日),本名张发宗,香港男歌手、演员、词曲作家[3],并曾经担任电影配乐、排舞、音乐视频导演、艺术总监和电影导演。", pub_date=datetime.now())
post.save()# 或者使用objects.create()方法
Post.objects.create(title="梅艳芳", content="英语:Anita Mui Yim-fong;1963年10月10日—2003年12月30日),香港女歌手、演员、社会活动家,有“乐坛大姐大”之称。她的形象百变,获奖无数,是香港粤语流行乐坛辉煌鼎盛期的标志性人物,也是香港演艺界第一位同时取得“歌后”及“影后”级殊荣的女艺人。", pub_date=datetime.now())

10,访问页面

http://127.0.0.1:8000/app11/index/

相关文章:

  • vue3+vite+nodejs,通过接口的形式请求后端打包(可打包全部或指定打包组件)
  • web的学习和开发
  • 面试专区|【40道移动端测试高频题整理(附答案背诵版)】
  • Android 生成 AAR 包
  • 论文学习_UVSCAN: Detecting Third-Party Component Usage Violations in IoT Firmware
  • 硬件工程师干了一年,公司无效卷,怎么破?
  • 手机数据恢复篇:恢复出厂设置后从iPhone快速恢复数据
  • 【分布式数据仓库Hive】HivQL的使用
  • Git 基础-创建版本库 git init、添加到暂存区git add、查看状态git status、查看改动git diff
  • ESP32-VScode环境设置
  • 无线WiFi毫米波雷达传感器成品,智能照明人体感应开关,飞睿智能点亮智慧生活
  • js学习--制作选项卡
  • 【LLM 论文】Self-Refine:使用 feedback 迭代修正 LLM 的 output
  • 微信小程序tabar属性
  • 使用 C# 和 OpenXML 读取大型 Excel 文件
  • [译] 怎样写一个基础的编译器
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 03Go 类型总结
  • 77. Combinations
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • centos安装java运行环境jdk+tomcat
  • CSS3 变换
  • Java程序员幽默爆笑锦集
  • java正则表式的使用
  • Linux各目录及每个目录的详细介绍
  • mac修复ab及siege安装
  • nfs客户端进程变D,延伸linux的lock
  • Ruby 2.x 源代码分析:扩展 概述
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • win10下安装mysql5.7
  • 编写高质量JavaScript代码之并发
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初探 Vue 生命周期和钩子函数
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 聊聊sentinel的DegradeSlot
  • 数组的操作
  • 我建了一个叫Hello World的项目
  • 一道面试题引发的“血案”
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #define 用法
  • (1)(1.11) SiK Radio v2(一)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)logging(日志模块)
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (八)Spring源码解析:Spring MVC
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net实现客户区延伸至至非客户区