当前位置: 首页 > 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/

http://www.lryc.cn/news/390338.html

相关文章:

  • 自动生成网站sitemap
  • 中国经济昆虫志(55卷)
  • linux环境安装elasticsearch缓存数据库和Kibana客户端
  • OpenSSL的一些使用案例
  • 常用字符串方法<python>
  • 线程池666666
  • Python28-5 k-means算法
  • 主流国产服务器操作系统技术分析
  • 【Linux】线程封装与互斥(万字)
  • 5分钟教你部署MySQL8.0环境
  • LLM应用:传统NLP任务
  • 基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建Kafka大数据运算环境---任务11:基础环境准备
  • Golang中swtich中如何强制执行下一个代码块
  • 读书笔记-Java并发编程的艺术-第4章(Java并发编程基础)-第2节(启动和终止线程)
  • 通俗大白话理解Docker
  • 题解:CF1981C(Turtle and an Incomplete Sequence)
  • Swift 中强大的 Key Paths(键路径)机制趣谈(上)
  • (十二)纹理和采样
  • QT创建地理信息shp文件编辑器shp_editor
  • 解析Kotlin中扩展函数与扩展属性【笔记摘要】
  • 【Java学习笔记】java图形界面编程
  • STM32入门笔记(03): ADC(SPL库函数版)(2)
  • 2024年7月2日 (周二) 叶子游戏新闻
  • 如何使用Spring Boot Profiles进行环境配置管理
  • Java错题归纳(二)
  • Grafana面试题精选和参考答案
  • Node版本管理工具 fnm 安装使用
  • vector模拟实现【C++】
  • 《每天5分钟用Flask搭建一个管理系统》第11章:测试与部署
  • Landsat数据从Collection1更改为Collection2