Django select_related()方法
创始人
2024-12-26 13:36:27
0

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, include  urlpatterns = [     path('app12/', include('app12.urls')), ]

4,添加模型

Test/app12/models.py

# models.py from django.db import models  class Author(models.Model):     name = models.CharField(max_length=100)      def __str__(self):         return self.name  class 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 Post  def 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

 {% for post in posts %}     

{{ post.title }}

By: {{ post.author.name }}

{{ post.content }}

{% endfor %}

7,添加路由地址

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

8,添加数据

Test/add_data.py

import os import django import random from faker import Faker  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Test.settings") django.setup()  from app12.models import Author, Post  fake = 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/

 

相关内容

热门资讯

科技新动态!开心跑得快有辅助工... 科技新动态!开心跑得快有辅助工具吗(透明挂)外挂透明挂辅助神器(2021已更新)(哔哩哔哩)1)开心...
4分钟实锤!吉祥麻将,微扑克切... 4分钟实锤!吉祥麻将,微扑克切实是真的有挂,介绍教程(有挂揭秘);一、吉祥麻将AI软件牌型概率发牌机...
实测发现!鄂州晃晃外 挂(透视... 实测发现!鄂州晃晃外 挂(透视)透视辅助工具(2021已更新)(哔哩哔哩)1、鄂州晃晃外 挂系统规律...
三分钟了解!好彩麻将怎样才可以... 三分钟了解!好彩麻将怎样才可以拿好牌(透视辅助)外挂透明挂辅助机制(2020已更新)(哔哩哔哩)1、...
九分钟辅助!斗棋辅助器在哪,w... 九分钟辅助!斗棋辅助器在哪,wepoker本来真的是有挂,教你攻略(有挂教程)1、下载好斗棋辅助器在...
记者揭秘!!广东雀神麻雀辅助器... 记者揭秘!!广东雀神麻雀辅助器在哪里下载(透视)透视辅助app(2020已更新)(哔哩哔哩)1、很好...
终于清楚!皮皮跑胡子输赢规律(... 终于清楚!皮皮跑胡子输赢规律(辅助挂)外挂透明挂辅助机制(2026已更新)(哔哩哔哩)1)皮皮跑胡子...
二分钟科普!花城牌舍系统规律,... 二分钟科普!花城牌舍系统规律,aAPOKER竟然存在有挂,揭秘教程(有挂插件)进入游戏-大厅左侧-新...
一分钟教你!心悦手机麻将辅牌器... 一分钟教你!心悦手机麻将辅牌器(透视辅助)外挂透视辅助挂(2024已更新)(哔哩哔哩)1、每一步都需...
科技新动态!四方河南麻将赢牌技... 科技新动态!四方河南麻将赢牌技巧(透视)外挂透明挂辅助神器(2026已更新)(哔哩哔哩)1、每一步都...