Django

Penggunaan Objek Permintaan dan Respons Django

Penggunaan Objek Permintaan dan Respons Django
Kitaran Permintaan-respons digunakan untuk memindahkan data antara klien dan pelayan di semua jenis API web. Senibina pelayan pelanggan digunakan dalam kerangka Django untuk melaksanakan aplikasi web. Permintaan dan respons adalah dua komponen utama aplikasi pelayan pelanggan. Seorang Permintaan Http objek dibuat dalam aplikasi Django apabila pelanggan meminta sumber apa pun. Fungsi pandangan tertentu digunakan untuk menangani permintaan dan mengirim respons menggunakan HttpResponse objek. Penggunaan pelbagai sifat dan kaedah Permintaan Http dan HttpResponse kelas kerangka Django akan dijelaskan dalam tutorial ini.

Kelas Permintaan Django Http:

Permintaan Http kelas digunakan untuk menangani permintaan klien yang ditentukan dalam django.http modul. Atribut kelas ini disebutkan di bawah.

Atribut HttpRequest:

Nama Atribut Tujuan
Permintaan Http.jalan Laluan penuh halaman yang diminta dikembalikan oleh atribut ini. Skema atau domain tidak termasuk dalam nilai yang dikembalikan.
Permintaan Http.jalan_info Bahagian maklumat jalan ini ditunjukkan oleh atribut ini.
Permintaan Http.kaedah Kaedah HTTP yang digunakan untuk permintaan ditunjukkan oleh atribut ini.
Permintaan Http.skema Skema permintaan (HTTP atau HTTP) diwakili oleh atribut ini.
Permintaan Http.badan Badan permintaan HTTP mentah dikembalikan sebagai rentetan bait oleh atribut ini.
Permintaan Http.DAPATKAN Semua parameter HTTP GET dikembalikan oleh atribut ini sebagai objek kamus.
Permintaan Http.POS Semua parameter HTTP POST dikembalikan oleh atribut ini sebagai objek kamus.
Permintaan Http.COOKIES Semua kuki yang ada dikembalikan oleh atribut ini.
Permintaan Http.FILES Semua fail yang dimuat naik mengandungi atribut ini.
Permintaan Http.META Semua tajuk HTTP yang tersedia ditunjukkan oleh atribut ini.
Permintaan Http.jenis kandungan Jenis permintaan MIME yang dihuraikan dari tajuk CONTENT_TYPE ditunjukkan oleh atribut ini.
Permintaan Http.kandungan_param Objek kamus yang disertakan dalam tajuk CONTENT_TYPE dikembalikan oleh atribut ini.
Permintaan Http.pengekodan Pengekodan semasa yang digunakan untuk menyahkod data borang yang dihantar ditunjukkan oleh atribut ini.

Kaedah Permintaan Http:

Kaedah Tujuan
Permintaan Http.dapatkan_host () Ia digunakan untuk mengembalikan nama host sebenar permintaan.
Permintaan Http.get_full_path () Ia digunakan untuk mengembalikan jalan dan rentetan pertanyaan jika ada.
Permintaan Http.get_port () Ia digunakan untuk mengembalikan nombor port permintaan.
Permintaan Http.is_secure () Sekiranya permintaan dibuat dengan menggunakan HTTPS, maka permintaan tersebut akan dikembalikan sebagai Benar jika tidak Salah.
Permintaan Http.ialah_ajax () Sekiranya permintaan dibuat dengan menggunakan XMLHttpRequest, maka permintaan tersebut akan dikembalikan sebagai Benar sebaliknya Palsu.
Permintaan Http.build_absolute_uri (lokasi) Ia digunakan untuk mengembalikan lokasi URI mutlak.
Permintaan Http.dapatkan_signed_cookie (kunci, lalai = RAISE_ERROR, garam = ”, max_age = Tiada) Ia digunakan untuk mengembalikan nilai kuki untuk kuki yang ditandatangani atau menaikkan django.teras.menandatangani.Pengecualian BadSignature untuk tandatangan yang tidak sah.

Django HttpResponse:

HttpResponse kelas digunakan untuk menangani tindak balas klien yang ditentukan dalam django.http modul. Atribut kelas ini disebutkan di bawah.

Atribut HttpResponse:

Nama Atribut Tujuan
HttpResponse.status_kod Kod status HTTP tindak balas dikembalikan oleh atribut ini
HttpResponse.carta Kumpulan arang yang digunakan untuk menyandikan tindak balas ditentukan oleh atribut ini.
HttpResponse.penstriman Nilai lalai bagi atribut ini adalah Salah.
HttpResponse.kandungan Kandungan ditunjukkan dalam rentetan bait oleh atribut ini.
HttpResponse.frasa_cara akal Frasa alasan HTTP tindak balas ditentukan oleh atribut ini.
HttpResponse.ditutup Apabila respons ditutup, maka atribut ini akan kembali Benar.

Kaedah HttpResponse:

Kaedah Penerangan
HttpResponse.__di dalamnya__(content = ”, content_type = Tidak ada, status = 200, sebab = Tidak ada, charset = Tiada) Objek HttpResponse dengan kandungan halaman dan jenis kandungan yang diberikan dimulakan dengan kaedah ini.
HttpResponse.__getitem__(kepala) Nilai nama tajuk tertentu dikembalikan dengan kaedah ini.
HttpResponse.__setemem__(tajuk, nilai) Nilai tertentu ditetapkan ke nama tajuk tertentu dengan kaedah ini.
HttpResponse.__delitem__(kepala) Nama tajuk tertentu dihapuskan dengan kaedah ini.
HttpResponse.set lalai(tajuk, nilai) Nilai header lalai ditetapkan dengan kaedah ini.
HttpResponse.mempunyai_pemimpin(kepala) Kewujudan nama tajuk tertentu diperiksa dengan kaedah ini.
HttpResponse.tulis(kandungan) Objek respons seperti fail dibuat dengan kaedah ini.
HttpResponse.nilai () Nilai HttpResponse.kandungan diambil dengan kaedah ini.
HttpResponse.boleh dibaca () Objek seperti aliran kelas HttpResponse dibuat dengan kaedah ini.
HttpResponse.dicari () Kaedah ini digunakan untuk membuat objek respons dapat dicari.
HttpResponse.beritahu () Kaedah ini digunakan untuk membuat instance HttpResponse sebagai objek seperti fail.
HttpResponse.siram () Kaedah ini digunakan untuk memusingkan objek tindak balas.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, anda mesti menyelesaikan tugas berikut:

A. Pasang Django versi 3+ di Ubuntu 20+ (lebih baik)
B. Buat projek Django
C. Jalankan pelayan Django untuk memeriksa pelayan berfungsi dengan betul atau tidak.

Sediakan Aplikasi Django:

A. Jalankan arahan berikut untuk membuat aplikasi Django bernama reqresapp.

$ python3 menguruskan.py startapp reqresapp

B. Jalankan arahan berikut untuk membuat pengguna untuk mengakses pangkalan data Django. Sekiranya anda telah membuat pengguna sebelum itu, anda tidak perlu menjalankan perintah.

$ python3 menguruskan.py createuperuser

C. Tambahkan nama aplikasi di DIPASANG_APP sebahagian tetapan.hlmfail y.

INSTALLED_APPS = [

'reqresapp'
]

Ubahsuai Fail yang Diperlukan:

Ubah suai pandangan.fail py dengan skrip berikut. The indeks () fungsi skrip akan membaca jalur permintaan, kaedah, dan ejen pengguna dengan menggunakan tiga Permintaan Http sifat. Seterusnya, nilai-nilai ini akan dihantar ke penyemak imbas dengan menggunakan HttpResponse () kaedah.

pandangan.py

# Import HttResponse
dari django.http import HttpResponse
# Tentukan fungsi untuk menangani permintaan dan tindak balas
indeks def (permintaan):
jalan = permintaan.jalan
kaedah = permintaan.kaedah
userAgent = permintaan.META ['HTTP_USER_AGENT']
# permintaan ditangani menggunakan objek HttpResponse
kembali HttpResponse ("

Menguji Kitaran Respons Permintaan Django


"
"

Jalur permintaan: "+ jalan +
"

Kaedah Permintaan: "+ kaedah +
"

Ejen Pengguna: "+ userAgent +"

")

Ubah suai url.py file dengan skrip berikut untuk menentukan jalan untuk memanggil indeks () fungsi pandangan.py fail.

url.py

# Laluan import
dari django.laluan import url
# Paparan import
dari reqresapp.pandangan indeks import
# Tentukan jalan
urlpatterns = [
jalan (", indeks),
]

Jalankan arahan berikut untuk memulakan pelayan Django.

$ python3 menguruskan.pelari py

Jalankan URL berikut dari penyemak imbas untuk memeriksa output aplikasi.

http: // localhost: 8000

Output berikut menunjukkan nilai tiga atribut HttpRequest yang dihantar oleh HttpResponse.

Kesimpulan:

Bagaimana pelbagai atribut dan kaedah HttpRequest dan HttpResponse dapat digunakan dalam aplikasi Django ditunjukkan dalam tutorial ini. Pengguna Django akan dapat menggunakan objek permintaan dan respons Django setelah membaca tutorial ini.

5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...