Django

Penggunaan Objek Permintaan dan Respons Django

Penggunaan Objek Permintaan dan Respons Django
Siklus Permintaan-tanggapan digunakan untuk mentransfer data antara klien dan server di semua jenis API web. Arsitektur client-server digunakan dalam kerangka kerja Django untuk mengimplementasikan aplikasi web. Permintaan dan respons adalah dua komponen utama dari aplikasi client-server. Sebuah HttpPermintaan objek dibuat dalam aplikasi Django ketika klien meminta sumber daya apa pun. Fungsi tampilan tertentu digunakan untuk menangani permintaan dan mengirim respons menggunakan HttpRespons obyek. Penggunaan atribut dan metode yang berbeda dari HttpPermintaan dan HttpRespons kelas kerangka kerja Django akan dijelaskan dalam tutorial ini.

Kelas HttpRequest Django:

HttpPermintaan class digunakan untuk menangani permintaan klien yang didefinisikan dalam django.http modul. Atribut kelas ini disebutkan di bawah ini.

Atribut HttpRequest:

Nama Atribut Tujuan
HttpPermintaan.jalan Jalur lengkap dari halaman yang diminta dikembalikan oleh atribut ini. Skema atau domain tidak termasuk dalam nilai yang dikembalikan.
HttpPermintaan.jalur_info Bagian info jalur dari jalur ini ditunjukkan oleh atribut ini.
HttpPermintaan.metode Metode HTTP yang digunakan untuk permintaan ditunjukkan oleh atribut ini.
HttpPermintaan.skema Skema permintaan (HTTP atau HTTPs) diwakili oleh atribut ini.
HttpPermintaan.tubuh Badan permintaan HTTP mentah dikembalikan sebagai string byte oleh atribut ini.
HttpPermintaan.DAPATKAN Semua parameter HTTP GET dikembalikan oleh atribut ini sebagai objek kamus.
HttpPermintaan.POS Semua parameter HTTP POST dikembalikan oleh atribut ini sebagai objek kamus.
HttpPermintaan.KUE Semua cookie yang tersedia dikembalikan oleh atribut ini.
HttpPermintaan.FILE Semua file yang diunggah ditampung oleh atribut ini.
HttpPermintaan.META Semua header HTTP yang tersedia ditampilkan oleh atribut ini.
HttpPermintaan.Jenis konten Jenis MIME dari permintaan yang diuraikan dari header CONTENT_TYPE ditunjukkan oleh atribut ini.
HttpPermintaan.konten_params Objek kamus yang disertakan dalam header CONTENT_TYPE dikembalikan oleh atribut ini.
HttpPermintaan.pengkodean Pengkodean saat ini yang digunakan untuk memecahkan kode data formulir yang dikirimkan ditunjukkan oleh atribut ini.

Metode HttpRequest:

metode Tujuan
HttpPermintaan.get_host() Ini digunakan untuk mengembalikan nama host sebenarnya dari permintaan.
HttpPermintaan.get_full_path() Ini digunakan untuk mengembalikan jalur dan string kueri jika tersedia.
HttpPermintaan.get_port() Ini digunakan untuk mengembalikan nomor port permintaan.
HttpPermintaan.is_aman() Jika permintaan dibuat dengan menggunakan HTTPS, maka akan dikembalikan sebagai Benar jika tidak Salah.
HttpPermintaan.is_ajax() Jika permintaan dibuat dengan menggunakan XMLHttpRequest, maka akan dikembalikan sebagai True jika tidak False Fal.
HttpPermintaan.build_absolute_uri (lokasi) Ini digunakan untuk mengembalikan lokasi URI absolut.
HttpPermintaan.get_signed_cookie (kunci, default=RAISE_ERROR, salt=", max_age=None) Ini digunakan untuk mengembalikan nilai cookie untuk cookie yang ditandatangani atau memunculkan Django.inti.penandatanganan.Pengecualian BadSignature untuk tanda tangan yang tidak valid.

Django HttpRespons:

HttpRespons class digunakan untuk menangani respons klien yang didefinisikan dalam django.http modul. Atribut kelas ini disebutkan di bawah ini.

Atribut HttpResponse:

Nama Atribut Tujuan
HttpRespons.Kode status Kode status HTTP dari respons dikembalikan oleh atribut ini
HttpRespons.rangkaian karakter Himpunan karakter yang digunakan untuk mengkodekan respons ditentukan oleh atribut ini.
HttpRespons.Streaming Nilai default dari atribut ini adalah False.
HttpRespons.kandungan Konten direpresentasikan dalam string byte oleh atribut ini.
HttpRespons.alasan_frase Frasa alasan HTTP dari respons ditentukan oleh atribut ini.
HttpRespons.Tutup Ketika respons ditutup, maka atribut ini akan mengembalikan True.

Metode HttpResponse:

metode Deskripsi
HttpRespons.__init__(content=”, content_type=Tidak ada, status=200, alasan=Tidak ada, charset=Tidak ada) Objek HttpResponse dengan konten halaman dan tipe konten yang diberikan dimulai dengan metode ini.
HttpRespons.__getitem__(tajuk) Nilai nama header tertentu dikembalikan dengan metode ini this.
HttpRespons.__setitem__(tajuk, nilai) Nilai tertentu diatur ke nama header tertentu dengan metode ini.
HttpRespons.__delimitasi__(tajuk) Nama header tertentu dihapus dengan metode ini.
HttpRespons.set standar(tajuk, nilai) Nilai header default diatur dengan metode ini.
HttpRespons.has_header(tajuk) Keberadaan nama header tertentu diperiksa dengan metode ini.
HttpRespons.menulis(kandungan) Objek respons seperti file dibuat dengan metode ini.
HttpRespons.dapatkan nilai() Nilai HttpResponse.konten diambil dengan metode ini.
HttpRespons.dapat dibaca() Objek seperti aliran dari kelas HttpResponse dibuat dengan metode ini.
HttpRespons.bisa dicari() Metode ini digunakan untuk membuat objek respons dapat dicari.
HttpRespons.menceritakan() Metode ini digunakan untuk membuat instance HttpResponse sebagai objek seperti file.
HttpRespons.menyiram() Metode ini digunakan untuk menyiram objek respons.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, Anda harus menyelesaikan tugas-tugas berikut:

SEBUAH. Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
B. Buat proyek Django
C. Jalankan server Django untuk memeriksa server bekerja dengan benar atau tidak.

Siapkan Aplikasi Django:

SEBUAH. Jalankan perintah berikut untuk membuat aplikasi Django bernama reqresapp.

$ python3 kelola.py startapp reqresapp

B. Jalankan perintah berikut untuk membuat pengguna untuk mengakses database Django. Jika Anda telah membuat pengguna sebelumnya, Anda tidak perlu menjalankan perintah.

$ python3 kelola.py buat pengguna super

C. Tambahkan nama aplikasi di INSTALLED_APP bagian dari pengaturan.pfile y.

INSTALLED_APPS = [

'reqresapp'
]

Ubah File yang Diperlukan:

Ubah tampilan.py dengan skrip berikut:. Itu indeks() fungsi skrip akan membaca jalur permintaan, metode, dan agen pengguna dengan menggunakan tiga HttpPermintaan atribut. Selanjutnya, nilai-nilai ini akan dikirim ke browser dengan menggunakan HttpRespon() metode.

dilihat.py

# Impor HttResponse
dari django.http impor HttpResponse
# Tentukan fungsi untuk menangani permintaan dan tanggapan
indeks def (permintaan):
jalan = permintaan.jalan
metode = permintaan.metode
userAgent = permintaan.META['HTTP_USER_AGENT']
# permintaan ditangani menggunakan objek HttpResponse
kembali HttpResponse("

Menguji Siklus Respons Permintaan Django


"
"

Jalur permintaan: " + jalur +
"

Metode Permintaan : " + metode +
"

Agen Pengguna : " + userAgent + "

")

Ubah urlnya.py dengan skrip berikut untuk menentukan jalur untuk memanggil indeks() fungsi dari dilihat.py mengajukan.

url.py

# Jalur impor
dari django.jalur impor url
# Impor tampilan
dari reqresapp.melihat indeks impor
# Tentukan jalur
pola url = [
jalur (", indeks),
]

Jalankan perintah berikut untuk memulai server Django.

$ python3 kelola.py runserver

Jalankan URL berikut dari browser untuk memeriksa output aplikasi.

http://localhost:8000

Output berikut menunjukkan nilai dari tiga atribut HttpRequest yang dikirim oleh HttpResponse.

Kesimpulan:

Bagaimana atribut dan metode berbeda dari HttpRequest dan HttpResponse dapat digunakan dalam aplikasi Django ditunjukkan dalam tutorial ini. Pengguna Django akan dapat menggunakan objek permintaan dan tanggapan Django setelah membaca tutorial ini.

Cara Menggunakan AutoKey untuk Mengotomatiskan Game Linux
AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11, diprogram dengan Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsionalitas MA...
Cara Menampilkan Penghitung FPS di Game Linux
Game Linux mendapat dorongan besar ketika Valve mengumumkan dukungan Linux untuk klien Steam dan game mereka pada tahun 2012. Sejak itu, banyak game A...
Cara mengunduh dan Memainkan Civilization VI Sid Meier di Linux
Pengenalan permainan Civilization 6 adalah konsep modern dari konsep klasik yang diperkenalkan dalam seri game Age of Empires. Idenya cukup sederhana;...