Django select_related()方法

select_related()的作用

select_related()是Django ORM(对象关系映射)中的一种查询优化方法,主要用于减少数据库查询次数,提高查询效率。当你在查询一个模型实例时,如果这个实例有ForeignKey关联到其他模型,那么select_related()可以帮助你在一次数据库查询中同时获取到这些关联模型的数据。

1,创建应用

Test/app12

python manage.py startapp app12

2,注册应用

Test/Test/settings.py

3,添加应用路由

Test/Test/urls.py

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

4,添加模型

Test/app12/models.py

# models.py
from django.db import modelsclass Author(models.Model):name = models.CharField(max_length=100)def __str__(self):return self.nameclass Post(models.Model):title = models.CharField(max_length=200)content = models.TextField()author = models.ForeignKey(Author, on_delete=models.CASCADE)def __str__(self):return self.title

5,添加视图函数

Test/app12/views.py

# views.py
from django.shortcuts import render
from .models import Postdef post_list(request):posts = Post.objects.select_related('author').all()return render(request, '12/post_list.html', {'posts': posts})

6,添加html代码

Test/templates/12/post_list.html

<!-- post_list.html -->
{% for post in posts %}<h2>{{ post.title }}</h2><p>By: {{ post.author.name }}</p><p>{{ post.content }}</p>
{% endfor %}

7,添加路由地址

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

8,添加数据

Test/add_data.py

import os
import django
import random
from faker import Fakeros.environ.setdefault("DJANGO_SETTINGS_MODULE", "Test.settings")
django.setup()from app12.models import Author, Postfake = Faker()def add_data():for _ in range(100):author = Author.objects.create(name=fake.name())for _ in range(10):Post.objects.create(title=fake.sentence(),content=fake.text(),author=author)if __name__ == '__main__':add_data()

 

 

9,访问页面

127.0.0.1:8000/app12/post_list/

 

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

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

相关文章

vue3相比于vue2有哪些新特性?

Composition API&#xff1a; 组合式 API 提供了更灵活和可组合的方式来组织代码。它允许将逻辑功能集中在一起&#xff0c;而不是分散在生命周期钩子中。 import { ref, reactive, computed, watch } from vue;export default {setup() {const count ref(0);const state r…

【.NET全栈】ASP.NET开发web应用——ASP.NET中的样式、主题和母版页

文章目录 前言一、在ASP.NET中应用CSS样式1、创建CSS样式&#xff08;1&#xff09;内联样式&#xff08;2&#xff09;内部样式表&#xff08;3&#xff09;外部样式表 2、应用CSS样式&#xff08;1&#xff09;菜鸟教程-简单例子&#xff08;2&#xff09;菜鸟教程-用户界面&…

2024-07-12 Unity AI状态机1 —— 框架介绍

文章目录 1 有限状态机2 状态机实现框架2.1 StateMachine2.2 BaseState2.3 ...State2.4 IAIObject 3 框架类图 本文章参考 B 站唐老狮 2023 年直播内容。点击前往唐老狮 B 站主页。 1 有限状态机 ​ 有限状态机&#xff08;Finite - State Machine&#xff0c;FSM&#xff09…

以下不属于清廉金融文化建设推进工作思路的是() A.监管引领B.协会推进C.机构推进D.社会共建

以下不属于清廉金融文化建设推进工作思路的是() 查看完整试题答案 A.监管引领B.协会推进 C.机构推进D.社会共建 以下不属于拒腐防变的五道关口的是&#xff1a;() A.政治关B.权力关 C.交往关D.价值观 对2023年度《上海银行业保险业营业网点“清廉角“建设规范》要求在…

【Diffusion学习】【生成式AI】Diffusion Model 原理剖析 (2/4) (optional)【公式推导】

文章目录 影像生成模型本质上的共同目标【拟合分布】Maximum Likelihood Estimation VAE 影像生成模型本质上的共同目标【拟合分布】 Maximum Likelihood Estimation VAE

Python使用蓝牙抓包

在此之前需要安装pyshark库 import pyshark def capture_bluetooth_packets(): # 捕获蓝牙接口的数据包 capture pyshark.LiveCapture(interfaceyour_bluetooth_interface) for packet in capture.sniff_continuously(): print(packet) if __name__ &quo…

网络安全-网络安全及其防护措施3

11.虚拟专用网络&#xff08;VPN&#xff09; VPN的定义和作用 虚拟专用网络&#xff08;VPN&#xff09;是一种通过公用网络&#xff08;如互联网&#xff09;建立安全、加密连接的方法&#xff0c;使用户能够安全地访问内部网络资源。VPN的主要作用包括&#xff1a; 数据保…

# Redis 入门到精通(四)-- linux 环境安装 redis

Redis 入门到精通&#xff08;四&#xff09;-- linux 环境安装 redis 一、linux 环境安装 redis – 基于 Linux 安装 redis 1、基于 Center 0S7 或者 unbunt-18.04 安装 Redis 1&#xff09;下载安装包wget http://download.redis.io/releases/redis-?.?.?.tar.gz 如&…

夏令营入门组day4

一. 题目 二. 思路 &#xff08;1&#xff09;B要先去和A回合&#xff0c;因为B只能将红染成蓝&#xff0c;不能直接将白染成蓝&#xff0c;所以B必须走A走过的路才有效。 &#xff08;2&#xff09;答案分为两部分&#xff0c;去和A回合的最短距离 以回合点为根节点&#xf…

FPGA上板项目(二)——PLL测试

目录 实验内容实验原理实验步骤实验结果 实验内容 将差分时钟信号转化为 192MHz 时钟信号作为输出。 实验原理 PLL&#xff0c;即锁相环&#xff0c;一种反馈控制电路&#xff0c;具有时钟倍频、分频、相位偏移和可编程占空比的功能。 实验步骤 添加 clocking wizard IP核&…

Gitlab CI/CD --- use a sample CI/CD template

0 Preface/Foreword Pipeline, job, stage的关系如下描述&#xff1a; A pipeline is composed of independent jobs that run scripts, grouped into stages. Stages run in sequential order, but jobs within stages run in parallel. 关键信息&#xff1a; pipeline由独…

Ubuntu 磁盘扩容

1.下载工具 sudo apt-get install gparted 2.调整大小

各种常用格式校验方法(身份证号格式校验、手机号格式校验、车牌号格式校验...)正则表达式

1、手机号格式校验&#xff08;1&#xff09; /*** 手机号码-合法性-正则校验* param phoneNumber* return*/public static boolean isValidatePhoneNumber(String phoneNumber) {Pattern pattern Pattern.compile("^[1][3-9]\\d{9}$");Matcher matcher pattern.ma…

IP风险画像 金融行业的安全盾牌

在当今数字化时代&#xff0c;金融行业面临着前所未有的安全挑战。随着在线交易和数字银行业务的迅猛发展&#xff0c;欺诈和网络攻击的威胁也在不断增加。金融机构需要高效、可靠的安全解决方案来保护客户的资产和个人信息&#xff0c;防止各种形式的欺诈行为。 IP风险画像是…

postman点code选http出现乱码?

最近在调OA接口新建流程&#xff0c;用postman调成功了&#xff0c;但是要换到数据库来的时候就不知道咋弄了&#xff0c;一开始还以为是出现了乱码&#xff0c;都不敢用http的code&#xff0c;但其实是参数被urlencoding了&#xff0c;所以写到Oracle数据库的时候&#xff0c;…

构建企业多层社会传播网络:以AI智能名片S2B2C商城小程序为例

摘要&#xff1a;在数字化转型的浪潮中&#xff0c;企业如何有效构建并优化其社会传播网络&#xff0c;已成为提升市场竞争力、深化用户关系及实现价值转化的关键。本文以AI智能名片S2B2C商城小程序为例&#xff0c;深入探讨如何通过一系列精细化的策略与技术创新&#xff0c;构…

[论文笔记]构建基于RAG聊天机器人的要素

引言 今天带来一篇构建RAG的论文笔记&#xff1a;FACTS About Building Retrieval Augmented Generation-based Chatbots。 基于生成式人工智能构建企业聊天机器人迅速成为行业中最受关注的应用之一&#xff0c;旨在提高员工生产力。 然而&#xff0c;构建成功的企业聊天机器…

深入解析Spring Cloud:构建分布式微服务架构的最佳实践

导语&#xff1a;随着互联网业务的快速发展&#xff0c;传统的单体应用已无法满足高并发、高可用、可扩展的需求。微服务架构以其轻量级、独立性、灵活性的特点&#xff0c;逐渐成为大型分布式系统的首选架构。Spring Cloud作为构建微服务架构的重要框架&#xff0c;为开发者提…

【边缘计算网关教程】6.松下 Mewtocol TCP 协议

前景回顾&#xff1a;【边缘计算网关教程】5.三菱FX3U编程口通讯-CSDN博客 松下 Mewtocol TCP 协议 适配PLC&#xff1a;松下FP0H 松下XHC60ET 1. 硬件连接 Mewtocol TCP协议采用网口通信的方式&#xff0c;因此&#xff0c;只需要保证网关的LAN口和松下PLC的IP在一个网段即…

MYSQL--第九次作业

MYSQL–第九次作业 1、安装redis&#xff0c;启动客户端、验证。 安装网址&#xff1a;Redis Released&#xff0c;找到适合自己电脑的redis版本后&#xff0c;下载并安装。 安装完后&#xff0c;打开cmd命令框&#xff1a; -- 启动客户端 C:\Windows\System32>redis-cl…