Django ialah rangka kerja web yang sangat boleh disesuaikan yang menyediakan banyak alatan dan perpustakaan yang mudah untuk membantu pembangun dengan cepat mencipta aplikasi web berprestasi tinggi dan boleh skala. Antaranya, pandangan adalah salah satu komponen terpenting dalam rangka kerja Django. Views bertanggungjawab untuk memproses permintaan daripada pelanggan dan mengembalikan respons yang sepadan. Dalam artikel ini, kami akan menyelami pandangan dalam rangka kerja Django dan menerangkan cara menggunakannya untuk mencipta aplikasi web berprestasi tinggi dan boleh disesuaikan.
1. Konsep asas pandangan
Dalam rangka kerja Django, pandangan merujuk kepada fungsi atau kelas Python yang memproses permintaan daripada klien dan mengembalikan respons yang sepadan. Paparan boleh mengendalikan pelbagai jenis permintaan, seperti GET, POST, PUT, DELETE, dsb. Paparan biasanya digunakan untuk memaparkan templat HTML, pangkalan data pertanyaan, memproses data borang, dsb. Pandangan ialah salah satu komponen paling penting dalam rangka kerja Django kerana mereka bertanggungjawab untuk mengendalikan permintaan daripada pelanggan dan kemudian mengembalikan respons yang sesuai.
Fungsi paparan ialah cara yang paling biasa digunakan untuk mencipta paparan dalam rangka kerja Django. Fungsi paparan ialah fungsi Python yang menerima parameter jenis HttpRequest dan mengembalikan respons jenis HttpResponse. Fungsi lihat biasanya ditakrifkan dalam fail views.py dan terikat pada corak URL. Contohnya:
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the index.")
Dalam kod di atas, kami mencipta indeks fungsi paparan, yang menerima parameter permintaan dan mengembalikan HttpResponse yang mengandungi rentetan "Hello, dunia. Anda berada di objek."
Selain fungsi lihat, rangka kerja Django juga menyediakan kelas paparan untuk membuat paparan. Kelas pandangan ialah kelas Python yang mewarisi daripada kelas View dalam rangka kerja Django dan melaksanakan kaedah yang ditakrifkan dalam kelas View. Kelas lihat sering digunakan untuk membuat paparan yang kompleks dan menyediakan lebih banyak pilihan yang boleh disesuaikan. Contohnya:
from django.views import View from django.http import HttpResponse class IndexView(View): def get(self, request): return HttpResponse("Hello, world. You're at the index.")
Dalam kod di atas, kami telah mencipta kelas IndexView yang mewarisi daripada kelas View. Kelas ini melaksanakan kaedah get yang ditakrifkan dalam kelas View dan mengembalikan objek HttpResponse yang mengandungi rentetan "Hello, dunia. Anda berada di indeks."
2. Kaedah HTTP pandangan
Dalam rangka kerja Django, paparan boleh mengendalikan pelbagai jenis permintaan HTTP, seperti GET, POST, PUT, DELETE, dsb. Fungsi paparan boleh mendapatkan kaedah HTTP yang diminta melalui atribut METHOD bagi objek HttpRequest, dan mengembalikan respons yang berbeza mengikut kaedah HTTP yang berbeza. Contohnya:
from django.http import HttpResponse def hello(request): if request.method == 'GET': return HttpResponse('Hello, World!') elif request.method == 'POST': return HttpResponse('Hello, POST!') else: return HttpResponse('Hello, Other HTTP method!')
Dalam kod di atas, kami mencipta fungsi helo pandangan yang mengembalikan respons berbeza berdasarkan kaedah HTTP yang berbeza. Jika kaedah HTTP yang diminta ialah GET, ia akan mengembalikan rentetan "Hello, World!"; jika ia adalah POST, ia akan mengembalikan rentetan "Hello, POST!"; !".
Begitu juga, kelas paparan juga boleh mengendalikan pelbagai jenis permintaan HTTP. Kelas lihat biasanya melaksanakan berbilang kaedah, satu untuk setiap kaedah HTTP. Contohnya:
from django.views import View from django.http import HttpResponse class HelloWorldView(View): def get(self, request): return HttpResponse('Hello, World!') def post(self, request): return HttpResponse('Hello, POST!') def put(self, request): return HttpResponse('Hello, PUT!') def delete(self, request): return HttpResponse('Hello, DELETE!')
Dalam kod di atas, kami telah mencipta kelas HelloWorldView yang diwarisi daripada kelas View. Kelas ini mengendalikan permintaan GET, POST, PUT dan DELETE dengan melaksanakan empat kaedah get, post, put dan delete, serta mengembalikan respons yang berbeza.
3. Lulus parameter paparan
Dalam rangka kerja Django, paparan boleh menerima parameter daripada corak URL dan penyerahan klien. Fungsi pandangan boleh mendapatkan parameter yang dikemukakan oleh klien melalui atribut GET dan POST objek HttpRequest, kelas pandangan boleh mendapatkan parameter yang dihantar oleh klien melalui kaedah GET dan POST objek HttpRequest. Contohnya:
from django.http import HttpResponse def hello(request): name = request.GET.get('name', 'World') return HttpResponse(f'Hello, {name}!')
Dalam kod di atas, kami mencipta fungsi pandangan hello, yang menerima parameter bernama nama dan mendapatkan parameter yang diserahkan oleh klien melalui kaedah GET. Jika pelanggan tidak menyerahkan parameter, nilai lalai 'Dunia' digunakan. Fungsi paparan menggunakan interpolasi rentetan untuk membina respons HTTP yang mengandungi nama parameter.
Begitu juga, kelas paparan juga boleh menggunakan kaedah GET dan POST untuk mendapatkan parameter yang diserahkan oleh klien. Contohnya:
from django.views import View from django.http import HttpResponse class HelloView(View): def get(self, request): name = request.GET.get('name', 'World') return HttpResponse(f'Hello, {name}!') def post(self, request): name = request.POST.get('name', 'World') return HttpResponse(f'Hello, {name}!')
Dalam kod di atas, kami telah mencipta kelas HelloView yang mewarisi daripada kelas View. Kelas ini melaksanakan kaedah get dan post, mendapatkan nama parameter yang diserahkan oleh klien melalui kaedah GET dan POST, dan menggunakan interpolasi rentetan untuk membina respons HTTP yang mengandungi nama parameter.
4. Paparan templat
Dalam rangka kerja Django, templat ialah cara yang mudah dan berkuasa untuk mengikat dan memaparkan objek Python dan halaman HTML. Templat boleh membantu pembangun mengurangkan kod HTML berulang, menjimatkan masa pembangunan dan meningkatkan kebolehselenggaraan kod. Dalam rangka kerja Django, paparan biasanya menggunakan templat untuk memaparkan halaman HTML. Paparan boleh menjadikan templat melalui fungsi render dan menghantar data templat ke templat. Contohnya:
from django.shortcuts import render def hello(request): name = request.GET.get('name', 'World') context = {'name': name} return render(request, 'hello.html', context=context)
Dalam kod di atas, kami telah mencipta fungsi pandangan hello yang menerima parameter bernama nama dan menghantar parameter nama kepada templat. Fungsi paparan menggunakan fungsi pemaparan untuk memaparkan templat bernama hello.html dan melepasi konteks data templat.
Begitu juga, kelas lihat juga boleh menggunakan fungsi render untuk memaparkan templat. Contohnya:
from django.views import View from django.shortcuts import render class HelloView(View): def get(self, request): name = request.GET.get('name', 'World') context = {'name': name} return render(request, 'hello.html', context=context) def post(self, request): name = request.POST.get('name', 'World') context = {'name': name} return render(request, 'hello.html', context=context)
Dalam kod di atas, kami telah mencipta kelas HelloView yang mewarisi daripada kelas View. Kelas ini melaksanakan kaedah dapatkan dan siarkan, menghantar data kepada templat bernama hello.html melalui fungsi pemaparan dan memaparkan halaman HTML.
Ringkasan
Paparan ialah salah satu komponen terpenting dalam rangka kerja Django. Views bertanggungjawab untuk memproses permintaan daripada pelanggan dan mengembalikan respons yang sepadan. Dalam rangka kerja Django, pandangan boleh dibuat menggunakan fungsi lihat dan kelas lihat. Paparan boleh mengendalikan pelbagai jenis permintaan HTTP dan menerima parameter daripada corak URL dan penyerahan klien. Paparan biasanya menggunakan templat untuk memaparkan halaman HTML dan menghantar data templat ke templat. Rangka kerja Django menyediakan pelbagai alatan dan perpustakaan untuk membantu pembangun dengan cepat mencipta aplikasi web berprestasi tinggi dan boleh disesuaikan.
Atas ialah kandungan terperinci Penjelasan terperinci tentang pandangan dalam rangka kerja Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!