Heim > Backend-Entwicklung > Python-Tutorial > Einführung verschiedener Sortierarten, wenn Django die Datenbank abfragt

Einführung verschiedener Sortierarten, wenn Django die Datenbank abfragt

伊谢尔伦
Freigeben: 2018-05-18 16:53:10
Original
4323 Leute haben es durchsucht

Fragen Sie Daten nach dem Eintragsdatum von klein nach groß ab, was wie folgt geschrieben werden kann:

Content.objects.order_by('entry_date')
Nach dem Login kopieren

Sortieren von groß nach klein:

Content.objects.order_by('-entry_date')
Nach dem Login kopieren

Im Folgenden werden andere Sortierarten vorgestellt

Zufällige Sortierung:

Content.objects.order_by('?')
Nach dem Login kopieren

Je nach Backend-Datenbank kann order_by(?) jedoch teuer und langsam sein.

Sortieren nach den Feldern der Beziehungstabelle

class Category(Base):
    code = models.CharField(primary_key=True,max_length=100)
    title = models.CharField(max_length = 255)
class Content(Base):
    title = models.CharField(max_length=255)
    description = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
Nach dem Login kopieren
# 按照Category的字段code,对Content进行排序,只需要外键后加双下划线
Content.objects.order_by('category__title')
# 如果只是按照外键来排序,会默认按照关联的表的主键排序
Content.objects.order_by('category')
# 上面等价于
Content.objects.order_by('category__code')
# 双下划线返回的是join后的结果集,而单下划线返回的是单个表的集合
Content.objects.order_by('category_title')
Nach dem Login kopieren

Hinweis: Unabhängig davon, ob es sich um einen einzelnen Unterstrich oder einen doppelten Unterstrich handelt, können wir {{ content.category.title } verwenden. }, um im Frontend Daten aus verwandten Tabellen abzurufen.

[Verwandte Tutorial-Empfehlungen]

1. „Python kostenloses Video-Tutorial

2. Python-Grundlagen-Einführungs-Tutorial

3. Anwendung von Python in der Datenwissenschaft

Das obige ist der detaillierte Inhalt vonEinführung verschiedener Sortierarten, wenn Django die Datenbank abfragt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage