Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan terperinci tentang Django ORM, rangka kerja ORM dalam Python
Django ORM ialah rangka kerja ORM klasik dalam Python Ia merupakan sebahagian daripada rangka kerja Web Django dan menyediakan cara yang mudah untuk operasi pangkalan data. ORM bermaksud Pemetaan Hubungan Objek, yang boleh memetakan jadual dalam pangkalan data hubungan ke kelas dalam Python, sekali gus memudahkan proses pembangunan dan meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan Django ORM secara terperinci.
I. Konsep asas ORM
ORM ialah teknologi yang memetakan objek kepada pangkalan data relasi Ia terutamanya melaksanakan tiga fungsi berikut:
Kelebihan utama ORM ialah ia boleh mengurangkan masa dan beban kerja pembangun menulis pernyataan SQL berulang, dan ia boleh mengurangkan ralat yang disebabkan oleh pelarasan dan perubahan pada pernyataan SQL.
II. Kelebihan Django ORM
Berbanding dengan rangka kerja ORM yang lain, Django ORM mempunyai kelebihan berikut:
III. Cara memasang Django menggunakan Django ORM
Mula-mula anda perlu memasang Django, anda boleh menggunakan pip untuk memasang:
pip install Django
Apabila menggunakan Django ORM, anda perlu mentakrifkan kelas model terlebih dahulu Kelas model ialah kelas dalam Python yang mentakrifkan medan dalam jadual data dan aspek lain jadual data, seperti nama jadual, indeks, dsb. Berikut ialah definisi kelas model ringkas:
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=50) pub_date = models.DateTimeField()
Dalam kod di atas, kami menggunakan modul models
yang disediakan oleh Django ORM untuk mentakrifkan jadual data bernama Book
, yang mengandungi tiga Medan: title
, author
, pub_date
. max_length
digunakan untuk menentukan panjang maksimum medan jenis rentetan dan DateTimeField
digunakan untuk menyimpan medan jenis masa.
Selepas melengkapkan definisi kelas model, anda perlu menjana jadual pangkalan data melalui migrasi. Django ORM menyediakan fungsi pemindahan automatik Anda hanya perlu menjalankan perintah berikut untuk menjana jadual data:
python manage.py makemigrations python manage.py migrate
Arahan di atas mencipta jadual Book
dan struktur jadual sepadan dengan kelas model yang ditentukan.
a Cipta rekod
Anda boleh menambah rekod baharu pada jadual data melalui kelas model dalam kod berikut. Kami mencipta rekod baharu dan menyimpannya ke pangkalan data:
from datetime import datetime book = Book(title='Django ORM Tutorial', author='Terry', pub_date=datetime.now()) book.save()
b Mengemas kini rekod
Mengemas kini rekod menggunakan Django ORM adalah sangat mudah, cuma tanya rekod dahulu dan kemudian kemas kini dan. simpan je. Berikut ialah contoh kod kemas kini yang mudah:
book = Book.objects.get(id=1) book.title = 'Updated Title' book.save()
c Padamkan rekod
Memadam rekod juga sangat mudah, cuma jalankan kod berikut:
book = Book.objects.get(id=1) book.delete()
d
Dalam Django ORM, anda boleh menggunakan objek objects
untuk pertanyaan Berikut ialah kod contoh pertanyaan mudah:
books = Book.objects.all() for book in books: print(book.title, book.author, book.pub_date)
Kod ini akan mengeluarkan Book
semua rekod dalam. medan jadual 🎜>, title
dan author
. pub_date
dan satu lagi adalah untuk mengaitkan melalui pertanyaan tersuai . ForeignKey
# 通过ForeignKey字段关联 class Author(models.Model): name = models.CharField(max_length=50) class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE) books = Book.objects.filter(author__name='Leo Tolstoy') # 以上代码查询了作者名为'Leo Tolstoy'的所有图书 # 通过自定义查询进行关联 books = Book.objects.raw('SELECT * FROM app_book INNER JOIN app_author ON app_book.author_id = app_author.id WHERE app_author.name = %s', ['Leo Tolstoy'])b. Kombinasi syarat pertanyaan Dalam Django ORM, anda boleh menggunakan objek
untuk menggabungkan berbilang syarat pertanyaan untuk mencapai pertanyaan yang lebih kompleks. Berikut ialah kod sampel: Q
from django.db.models import Q books = Book.objects.filter(Q(title__contains='Django') | Q(author__contains='Guido')) # 以上代码查询了标题中包含'Django'或作者名中包含'Guido'的所有图书c. Operasi pengagregatan Operasi pengagregatan digunakan untuk mengumpulkan data atau meringkaskan statistik. Operasi pengagregatan yang disokong dalam Django ORM termasuk:
, Avg
, Max
, Min
, Count
, dsb. Berikut ialah contoh kod: Sum
from django.db.models import Avg avg_pub_date = Book.objects.all().aggregate(Avg('pub_date')) # 以上代码计算了所有图书的发布时间的平均值V. Ringkasan Artikel ini menyediakan pengenalan terperinci kepada rangka kerja ORM Django ORM dalam Python. Django ORM ialah rangka kerja ORM yang mudah digunakan, kaya dengan ciri dan boleh skala yang boleh membantu pembangun mencapai pembangunan pesat dan operasi pangkalan data yang lebih cekap. Selain operasi CRUD asas, Django ORM juga menyokong beberapa operasi pertanyaan lanjutan, seperti pertanyaan jadual gabungan, kombinasi keadaan pertanyaan, operasi pengagregatan, dsb., yang boleh memenuhi keperluan lebih banyak operasi data.
Atas ialah kandungan terperinci Penjelasan terperinci tentang Django ORM, rangka kerja ORM dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!