Rumah > Artikel > pembangunan bahagian belakang > Django: rangka kerja timbunan penuh atau pembangunan bahagian belakang sahaja?
Django ialah rangka kerja web Python popular yang menyediakan banyak ciri berkuasa untuk menjadikan pembangunan aplikasi web lebih mudah dan cekap. Walau bagaimanapun, sesetengah orang berpendapat bahawa Django hanya sesuai untuk pembangunan bahagian belakang dan bukan untuk pembangunan tindanan penuh. Artikel ini akan menyelami sama ada Django terhad kepada pembangunan bahagian belakang dan menyediakan beberapa contoh kod konkrit.
Mengenai sama ada Django sesuai untuk pembangunan tindanan penuh, jawapannya adalah ya, ia bergantung pada skop khusus pembangunan tindanan penuh yang anda fahami. Jika anda berpendapat pembangunan tindanan penuh hanya melibatkan pembangunan bahagian hadapan dan bahagian belakang, maka Django telah membantu anda. Jika anda menganggap bahawa pembangunan tindanan penuh juga termasuk bekerja dengan pelayan, pangkalan data, API dan teknologi lain, maka Django boleh melakukan tugas itu juga.
Secara khusus, Django menyediakan beberapa alatan dan perpustakaan berkuasa yang menjadikannya sesuai untuk membangunkan tapak web dan aplikasi web. Berikut ialah beberapa contoh:
Django menggunakan enjin templat untuk memaparkan HTML. Enjin templat membolehkan anda mencampurkan kandungan dinamik dengan mudah dengan antara muka HTML statik. Django juga menyediakan beberapa perpustakaan CSS dan JavaScript asas untuk menjadikan tapak web anda lebih cantik dan dinamik.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan enjin templat untuk memaparkan HTML dalam Django:
# views.py from django.shortcuts import render def home(request): username = 'Alice' return render(request, 'home.html', {'username': username})
<!-- home.html --> <!DOCTYPE html> <html> <head> <title>Home Page</title> </head> <body> <h1>Welcome, {{ username }}!</h1> </body> </html>
Dalam contoh ini, kami mentakrifkan paparan laman utama yang akan menjadikan templat home.html. Kami juga menghantar nama pengguna berubah kepada templat dan templat menggunakan {{ nama pengguna }} untuk memberikan nilai pembolehubah ini.
Django ialah rangka kerja backend lengkap yang menyediakan banyak alatan dan perpustakaan yang sangat baik untuk mengendalikan isu pembangunan backend seperti pangkalan data, keselamatan, pengesahan borang, dsb. Berikut ialah contoh mudah yang menunjukkan cara untuk mentakrifkan model dalam Django dan menyimpannya ke pangkalan data:
# models.py from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) def __str__(self): return f'{self.first_name} {self.last_name}'
# views.py from django.shortcuts import render from .models import Person def home(request): person = Person(first_name='Alice', last_name='Smith') person.save() return render(request, 'home.html', {'person': person})
<!-- home.html --> <!DOCTYPE html> <html> <head> <title>Home Page</title> </head> <body> <h1>Hello, {{ person }}!</h1> </body> </html>
Dalam contoh ini, kami mentakrifkan model yang dipanggil Person dan menggunakannya untuk mencipta model yang dipanggil watak Alice Smith. Kami menghantar objek orang ke dalam paparan yang menjadikan templat home.html dan menggunakan {{ orang }} dalam templat untuk memaparkan perwakilan rentetan objek ini.
Django bukan sahaja menyediakan fungsi asas yang diperlukan untuk aplikasi web, tetapi juga menyediakan fungsi untuk mengendalikan permintaan dan respons HTTP. Dalam Django, anda boleh membuat perkhidmatan berasaskan API REST dengan mudah dan mengurusnya menggunakan antara muka pentadbir Django.
Berikut ialah contoh REST API yang mudah:
# serializers.py from rest_framework import serializers from .models import Person class PersonSerializer(serializers.ModelSerializer): class Meta: model = Person fields = ['first_name', 'last_name']
# views.py from rest_framework import generics from .models import Person from .serializers import PersonSerializer class PersonList(generics.ListCreateAPIView): queryset = Person.objects.all() serializer_class = PersonSerializer
Dalam contoh ini, kami menggunakan Rangka Kerja Rehat Django (DRF) untuk mencipta API REST yang mudah. Kami mentakrifkan serializer yang dipanggil PersonSerializer yang menukar model Person kepada format JSON. Kami juga mentakrifkan paparan yang dipanggil PersonList yang menyediakan permintaan GET dan POST serta mengembalikan perwakilan JSON bagi model Person.
Django didatangkan dengan ORM terbina dalam, yang menjadikannya sempurna untuk bekerja dengan pangkalan data. Django ORM membolehkan anda mengendalikan pangkalan data anda menggunakan kod Python dan bukannya bahasa pertanyaan SQL. Berikut ialah contoh mudah yang menunjukkan cara mentakrifkan model dalam Django dan menanyakan data dalam pangkalan data:
# models.py from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) def __str__(self): return f'{self.first_name} {self.last_name}'
# views.py from django.shortcuts import render from .models import Person def home(request): people = Person.objects.all() return render(request, 'home.html', {'people': people})
<!-- home.html --> <!DOCTYPE html> <html> <head> <title>Home Page</title> </head> <body> <h1>People:</h1> <ul> {% for person in people %} <li>{{ person }}</li> {% endfor %} </ul> </body> </html>
Dalam contoh ini, kami mentakrifkan model yang dipanggil Person dan menggunakannya untuk menanyakan semua orang dalam pangkalan data . Kami menyenaraikan objek orang ke dalam templat home.html dan menggunakan teg templat {% untuk orang dalam orang %} dan {% endfor %} untuk mengulangi semua orang.
Ringkasnya, Django ialah rangka kerja yang sangat berkuasa dan komprehensif yang boleh digunakan untuk pembangunan timbunan penuh. Sama ada anda ingin membangunkan bahagian hadapan, bahagian belakang, API, pelayan atau pangkalan data, Django mempunyai alatan dan perpustakaan yang berkuasa untuk memenuhi keperluan anda.
Atas ialah kandungan terperinci Django: rangka kerja timbunan penuh atau pembangunan bahagian belakang sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!