Rumah > Artikel > pembangunan bahagian belakang > Pengaturcaraan pelayan Python: menggunakan django-mptt untuk pemprosesan struktur data pokok
Python ialah bahasa pengaturcaraan yang sangat baik yang digunakan secara meluas dalam pengaturcaraan sebelah pelayan. Dalam pengaturcaraan bahagian pelayan, pemprosesan struktur data pokok adalah keperluan biasa Pada masa ini, anda perlu menggunakan beberapa alat untuk membantu mencapainya. Antaranya, django-mptt ialah alat yang sangat mudah Artikel ini akan memperkenalkan cara menggunakan django-mptt untuk pemprosesan struktur data pokok.
1. Apakah itu django-mptt?
django-mptt ialah aplikasi pemprosesan struktur pokok berdasarkan rangka kerja Django Ia boleh membantu kami mengendalikan pelbagai operasi seperti penciptaan, kemas kini, pemadaman dan pengisihan data struktur pokok. Ia boleh memudahkan kerja pengekodan kami dan membolehkan kami memberi lebih tumpuan pada pemprosesan logik perniagaan.
2. Pemasangan django-mptt
Sebelum menggunakan django-mptt, kita perlu memasangnya. Masukkan arahan berikut dalam baris arahan:
pip install django-mptt
3 Penggunaan asas django-mptt
Pertama, kita perlu mencipta model dalam model. Cipta model dalam py, yang merupakan kelas induk bagi struktur pokok. Antaranya, MPTTModel ialah kelas asas model yang disediakan oleh django-mptt untuk memproses struktur pokok, dan TreeForeignKey ialah kelas yang disediakan oleh django-mptt untuk mencipta kunci asing. Kami mentakrifkan atribut nama dan atribut induk dalam model Kategori. Atribut induk adalah daripada jenis TreeForeignKey, dan hubungannya dengan dirinya sendiri ialah hubungan banyak dengan satu. Dalam kelas MPTTMeta, kami menentukan atribut order_insertion_by, yang akan memainkan peranan apabila kami mengisih struktur pokok.
Migratefrom django.db import models from mptt.models import MPTTModel, TreeForeignKey class Category(MPTTModel): name = models.CharField(max_length=50, unique=True) parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children') class MPTTMeta: order_insertion_by = ['name'] def __str__(self): return self.name
3. Tambah data
Selepas kita mencipta model Kategori, kita perlu menambah beberapa data supaya kita benar-benar memahami penggunaannya. Masukkan arahan berikut dalam terminal:
python manage.py makemigrations python manage.py migrate
Selepas memasukkan shell Django, kami boleh menambah beberapa data seperti yang ditunjukkan di bawah:
python manage.py shell
Dalam kod ini, kami mencipta nod akar dan menyimpannya ke pangkalan data. Kemudian, kami mencipta dua nod anak bernama child1 dan child2, dan mewujudkan hubungan ibu bapa-anak antara mereka dan nod akar. Akhir sekali, kami mencipta nod anak bernama child11 dan mewujudkan hubungan ibu bapa-anak dengan child1.
4. Data pertanyaan
Selepas kami menambah data, kami boleh menanyakan data struktur pepohon kami melalui beberapa API yang disediakan oleh django-mptt, seperti yang ditunjukkan di bawah:
>>> from blog.models import Category >>> root = Category(name='root') >>> root.save() >>> child1 = Category(name='child1', parent=root) >>> child1.save() >>> child2 = Category(name='child2', parent=root) >>> child2.save() >>> child11 = Category(name='child11', parent=child1) >>> child11.save()
Dalam kod ini, kami menggunakan Category.objects.all() untuk mendapatkan senarai keseluruhan struktur data dan menggunakan kaedah get_family() untuk mendapatkan keseluruhan struktur data. Kami juga menggunakan kaedah get_children() untuk mendapatkan nod anak nod, dan kaedah get_parent() untuk mendapatkan nod induk nod.
5. Padamkan data
Selepas kami menanyakan data, kami juga boleh memadamkannya. Apabila melakukan operasi pemadaman, kita perlu memberi perhatian kepada pemadaman semua nod anak nod terlebih dahulu, jika tidak pengecualian akan dilemparkan. Berikut ialah kod untuk operasi pemadaman:
>>> category_tree = Category.objects.all() >>> category_tree [<Category: root>, <Category: child1>, <Category: child11>, <Category: child2>] >>> category_tree.get(name="root").get_family() [<Category: root>, <Category: child1>, <Category: child11>, <Category: child2>] >>> category_tree.get(name="root").get_children() [<Category: child1>, <Category: child2>] >>> category_tree.get(name="child1").get_children() [<Category: child11>] >>> category_tree.get(name="child11").get_parent() <Category: child1>
Dalam contoh ini, kami memadamkan nod child1 dan menanyakan struktur data menggunakan kaedah get_all(). Pada masa ini, kita dapat melihat bahawa child1 dan child11 telah dipadamkan daripada struktur data.
4. Ringkasan
Melalui artikel ini, kami telah mempelajari penggunaan asas django-mptt, termasuk mencipta model, memindahkan, menambah data, menanya data dan memadamkan data. Menggunakan django-mptt, kami boleh mengendalikan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan data berstruktur pepohon dengan mudah. Saya harap artikel ini dapat membantu kajian anda.
Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: menggunakan django-mptt untuk pemprosesan struktur data pokok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!