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/

 

相关内容

热门资讯

十分钟了解!情怀江湖手游辅助,... 十分钟了解!情怀江湖手游辅助,心悦游戏辅助,系统教程(今日头条)-哔哩哔哩;1.情怀江湖手游辅助 a...
第一分钟带你科普!途游小程序辅... 途游小程序辅助器 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1...
九分钟带你发现!微信随意玩辅助... 九分钟带你发现!微信随意玩辅助器(辅助挂)其实真的是有挂(存在有挂)-哔哩哔哩;亲真的是有正版授权,...
第8分钟带你了解!微信边锋辅助... 第8分钟带你了解!微信边锋辅助软件(辅助挂)透视玄学外挂开挂辅助软件(果然是有挂的);打开点击测试直...
七分钟带你详情!拱趴大菠萝辅助... 七分钟带你详情!拱趴大菠萝辅助方法,广西老友玩辅助,必备教程(讲解有挂)-哔哩哔哩;无需打开直接搜索...
第四分钟带你了解!皮皮衡阳字牌... 第四分钟带你了解!皮皮衡阳字牌黑科技视频(辅助挂)透视好友房外挂开挂辅助软件(一直是有挂的)>>您好...
第4分钟开挂!wejoker辅... 第4分钟开挂!wejoker辅助机器人,拱趴大菠萝怎么开挂,2026新版技巧(存在有挂)-哔哩哔哩;...
第4分钟带你科普!创思维激k有... 第4分钟带你科普!创思维激k有辅助器吗(辅助挂)其实确实有挂(有挂方式)-哔哩哔哩;创思维激k有辅助...
第2分钟带你了解!多乐跑得快私... 第2分钟带你了解!多乐跑得快私人房间辅助视频,新九天辅助系统,玩家教程(有挂技巧)-哔哩哔哩;无需打...
8分钟带你了解!哈局十三张元华... 8分钟带你了解!哈局十三张元华辅助(辅助挂)透视软件外挂开挂辅助脚本(其实确实有挂) 了解更多开挂安...