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/

 

相关内容

热门资讯

2026版方法!红龙poker... 2026版方法!红龙poker辅助平台,樱花之盛辅助,指南辅助器(有挂细节)-哔哩哔哩1、红龙pok...
随着!欢乐掌心辅助,本来真的是... 随着!欢乐掌心辅助,本来真的是有辅助下载(有挂工具)-哔哩哔哩1.欢乐掌心辅助 选牌创建新账号,点击...
必备透视!来玩app破解,ep... 必备透视!来玩app破解,epoker免费透视脚本(透视)竟然一直总是有辅助软件(哔哩哔哩)所有人都...
透视肯定!哈糖大菠萝能开挂吗,... 透视肯定!哈糖大菠萝能开挂吗,决战卡五星开挂方法,绝活辅助攻略(有挂技巧)-哔哩哔哩1、任何哈糖大菠...
今日!山西扣点辅助工具,一直真... 今日!山西扣点辅助工具,一直真的是有辅助工具(果真有挂)-哔哩哔哩1、任何山西扣点辅助工具透视是真的...
科普透视!werplan外卦神... 科普透视!werplan外卦神器,xpoker透视辅助(透视)竟然是有辅助攻略(哔哩哔哩)1、金币登...
网友热议!红龙poker辅助工... 网友热议!红龙poker辅助工具,蜀山四川辅助脚本多少钱,步骤辅助app(有挂总结)-哔哩哔哩1、完...
无独有偶!渝都麻将开挂方法,真... 无独有偶!渝都麻将开挂方法,真是存在有辅助神器(有挂神器)-哔哩哔哩1、让任何用户在无需渝都麻将开挂...
揭露透视!werplan免费挂... 揭露透视!werplan免费挂下载,aa poker辅助(透视)好像一直总是有辅助攻略(哔哩哔哩)1...
透视黑科技!agpoker辅助... 透视黑科技!agpoker辅助,桂林老k字字牌辅助,指南辅助脚本(有挂秘笈)-哔哩哔哩1、桂林老k字...