Джанго

Използване на обекти за заявки и отговори на Django

Използване на обекти за заявки и отговори на Django
Цикълът Request-response се използва за прехвърляне на данни между клиента и сървъра във всички видове уеб API. Архитектурата клиент-сървър се използва в рамката на Django за внедряване на уеб приложението. Заявката и отговорът са двата основни компонента на приложението клиент-сървър. An HttpRequest object се създава в приложението Django, когато клиент поиска всеки ресурс. Специална функция за изглед се използва за обработка на заявката и изпращане на отговора с помощта на HttpResponse обект. Използването на различни атрибути и методи на HttpRequest и HttpResponse класовете на рамката на Django ще бъдат обяснени в този урок.

Клас на Django HttpRequest:

HttpRequest клас се използва за обработка на клиентска заявка, която е дефинирана в django.http модул. Атрибутите на този клас са посочени по-долу.

Атрибути на HttpRequest:

Име на атрибута Предназначение
HttpRequest.път Пълният път на заявената страница се връща от този атрибут. Схемата или домейнът не са включени във върнатата стойност.
HttpRequest.path_info Частта с информация за пътя на този път се показва от този атрибут.
HttpRequest.метод Използваният за заявката HTTP метод е показан от този атрибут.
HttpRequest.схема Схемата на заявката (HTTP или HTTP) е представена от този атрибут.
HttpRequest.тяло Суровото тяло на HTTP заявката се връща като байт низ от този атрибут.
HttpRequest.ВЗЕМЕТЕ Всички HTTP GET параметри се връщат от този атрибут като обект на речника.
HttpRequest.ПОСТ Всички HTTP POST параметри се връщат от този атрибут като обект на речника.
HttpRequest.БИСКВИТКИ Всички налични бисквитки се връщат от този атрибут.
HttpRequest.ФАЙЛОВЕ Всички качени файлове се съдържат от този атрибут.
HttpRequest.МЕТА Всички налични HTTP заглавки са показани от този атрибут.
HttpRequest.тип съдържание Типът MIME на заявката, който се анализира от заглавката CONTENT_TYPE, се показва от този атрибут.
HttpRequest.съдържание_парами Обектът на речника, включен в заглавката CONTENT_TYPE, се връща от този атрибут.
HttpRequest.кодиране Използваното текущо кодиране за декодиране на подадените данни от формуляра се показва от този атрибут.

HttpRequest методи:

Метод Предназначение
HttpRequest.get_host () Използва се за връщане на действителното име на хост на заявката.
HttpRequest.get_full_path () Използва се за връщане на пътя и низа на заявката, ако са налични.
HttpRequest.get_port () Използва се за връщане на номера на порта на заявката.
HttpRequest.is_secure () Ако заявката е направена с помощта на HTTPS, тя се връща като True иначе False.
HttpRequest.is_ajax () Ако заявката е направена с помощта на XMLHttpRequest, тя се връща като True иначе False.
HttpRequest.build_absolute_uri (местоположение) Използва се за връщане на абсолютното местоположение на URI.
HttpRequest.get_signed_cookie (ключ, по подразбиране = RAISE_ERROR, сол = ”, max_age = Няма) Използва се за връщане на стойността на бисквитката за подписана бисквитка или повишава django.ядро.подписване.Изключение BadSignature за невалиден подпис.

Django HttpResponse:

HttpResponse class се използва за обработка на отговора на клиента, който е дефиниран в django.http модул. Атрибутите на този клас са посочени по-долу.

Атрибути на HttpResponse:

Име на атрибута Предназначение
HttpResponse.код_на статус Кодът на състоянието на HTTP на отговора се връща от този атрибут
HttpResponse.charset Наборът от символи, който се използва за кодиране на отговора, се дефинира от този атрибут.
HttpResponse.стрийминг Стойността по подразбиране на този атрибут е False.
HttpResponse.съдържание Съдържанието е представено в байтов низ от този атрибут.
HttpResponse.причина_фраза Фразата HTTP причина за отговора се дефинира от този атрибут.
HttpResponse.затворен Когато отговорът е затворен, този атрибут ще върне True.

Методи на HttpResponse:

Метод Описание
HttpResponse.__в него__(съдържание = ”, тип_съдържание = Няма, състояние = 200, причина = Няма, кодировка = Няма) Чрез този метод се инициира обект HttpResponse с даденото съдържание на страницата и тип съдържание.
HttpResponse.__getitem__(заглавна част) Стойността на конкретното име на заглавка се връща по този метод.
HttpResponse.__setitem__(заглавка, стойност) Конкретната стойност се задава на конкретното име на заглавката по този метод.
HttpResponse.__delitem__(заглавна част) Конкретното име на заглавката се изтрива по този метод.
HttpResponse.setdefault(заглавка, стойност) Стойността на заглавката по подразбиране се задава по този метод.
HttpResponse.has_header(заглавна част) Съществуването на конкретното име на заглавка се проверява по този метод.
HttpResponse.пиши(съдържание) Файлоподобният обект на отговор се създава по този метод.
HttpResponse.getvalue () Стойността на HttpResponse.съдържанието се извлича по този метод.
HttpResponse.четим () Потокоподобният обект от клас HttpResponse се създава по този метод.
HttpResponse.видим () Този метод се използва, за да направи обекта на отговор подходящ за търсене.
HttpResponse.казвам() Този метод се използва за създаване на екземпляр HttpResponse като обект, подобен на файл.
HttpResponse.флъш () Този метод се използва за промиване на обекта за отговор.

Предпоставки:

Преди да практикувате скрипта на този урок, трябва да изпълните следните задачи:

A. Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
Б. Създайте проект на Django
° С. Стартирайте сървъра Django, за да проверите дали сървърът работи правилно или не.

Настройване на приложение Django:

A. Изпълнете следната команда, за да създадете приложение на Django с име reqresapp.

$ python3 управлява.py startapp reqresapp

Б. Изпълнете следната команда, за да създадете потребител за достъп до базата данни Django. Ако сте направили потребителя преди това, не е необходимо да изпълнявате командата.

$ python3 управлява.py създаваuperuser

° С. Добавете името на приложението в INSTALLED_APP част от настройки.стрy файл.

INSTALLED_APPS = [
..
'reqresapp'
]

Променете необходимите файлове:

Променете изгледите.py файл със следния скрипт. The индекс () функция на скрипта ще прочете пътя на заявката, метода и потребителския агент, като използва три HttpRequest атрибути. След това тези стойности ще бъдат изпратени до браузъра чрез HttpResponse () метод.

мнения.py

# Импортиране на HttResponse
от django.http импортиране HttpResponse
# Дефинирайте функция за обработка на заявка и отговор
def index (заявка):
път = заявка.път
метод = заявка.метод
userAgent = заявка.МЕТА ['HTTP_USER_AGENT']
# заявката се обработва с помощта на HttpResponse обект
връщане HttpResponse ("

Тестване на цикъла за отговор на заявката Django


"
"

Път за заявка: "+ път +
"

Метод на заявката: "+ метод +
"

Потребителски агент: "+ userAgent +"

")

Променете URL адресите.py файл със следния скрипт за определяне на пътя за извикване на индекс () функция на мнения.py файл.

URL адреси.py

# Път за импортиране
от django.път за импортиране на URL адреси
# Импортиране на изглед
от reqresapp.индекс за импортиране на изгледи
# Определете пътя
urlpatterns = [
път (", индекс),
]

Изпълнете следната команда, за да стартирате Django сървъра.

$ python3 управлява.py runserver

Изпълнете следния URL от браузъра, за да проверите изхода на приложението.

http: // localhost: 8000

Следващият изход показва стойностите на три атрибута HttpRequest, изпратени от HttpResponse.

Заключение:

Как различните атрибути и методи на HttpRequest и HttpResponse могат да се използват в приложението Django са показани в този урок. Потребителите на Django ще могат да използват обектите за заявки и отговори на Django, след като прочетат този урок.

OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...