Step 4 (S-44787)

From Stepik Wiki
Revision as of 13:47, 6 August 2017 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14828/step/4

Step 4 (S-44787) 1.png

[00:00 - 00:16] 2 важный аспект помимо где то post параметров эта работа заголовками давайте посмотрим как можно с помощью объектов request response получить и установить заголовки а для начала заголовки запроса а


[00:16 - 00:35] начнем с того что джанго разбирает некоторые заголовки например заголовок куки и для работы с этими заголовками предоставлены более удобные методы а для других заголовков остается слова мета


[00:35 - 00:51] содержатся а переменная переменная которое придает свои войска и кружение а соответственно называются они так же как повелось с времен с времен


[00:51 - 01:09] например заголовок юзерагент мы можем получить и за require смета с помощью строки а что теперь юзер агент а в принципе в большинстве случаев заголовки фрагмент использоваться как строка очень сложно придумать какой то внутренний


[01:09 - 01:26] структуру потому что фактически там произвольные данные могут находиться поэтому чаще всего используют именно как строки а 2 пример посмотрим это получение


[01:26 - 01:43] ip адреса пользователя а мы говорили что согласно согласно протоколу сержант ну и всем которая от него а как


[01:43 - 02:01] написано на основании протокола съезжаются все все его наследники ip адрес пользователя которая запрашивает в обсервер передается в переменной почему так но есть 1 нюанс а когда нас используется архитектура front end backend то есть когда наша плите и шел сервер


[02:01 - 02:19] находится позади прокси непосредственных protection серверу подключается прокси и поэтому ему там будет адрес прокси мы говорили что в таком случае а прокси сервер добавляют специальный заголовок а часто это заголовок называется икс реала


[02:19 - 02:37] хотя точного стандарт нету а поэтому кстати буква икс все заголовки которые начинаются с описания предполагает что они не стандартизированы а каким образом получить в таком случае ip адрес пользователя


[02:37 - 02:53] очень просто мы сначала пытаемся получить а из request мета а заголовок p причем используя метод агент обращаемся никак словарю


[02:53 - 03:13] используя метод get а если такого заголовка нет у нас вернуться специальная переменная нам то есть специальный тип мам а пустое значение дальше мы проверяем если нас вернулся нам то есть если израиль и значит мы получаем обычным способом


[03:13 - 03:31] вот собственно говоря вот такая конструкция это надежный способ получения ip адреса а приклеивал серы а если он на охоту постоянно писать эту конструкцию есть возможность а


[03:31 - 03:46] стереть а объектов теперь request наследоваться от него и указать не отнаследоваться а в питоне есть возможность так называемого а вообще


[03:46 - 04:03] то есть вы можете свободно добавить методов либо свойств произвольному объекту вы можете написать свой мидуэйз самое чуть позже поговорим которые добавят а специальный метод в request которая будет возвращать адрес пользователя


[04:03 - 04:18] так вернемся к заголовкам каким образом можно указать в заголовке ответа во 2 параграфе а что с того что content type можно указать непосредственно в конструкторе объектов


[04:18 - 04:36] post content type указывают очень часто и чисто для упрощения заголовок content type был вынесен в конструктор вот здесь конструкторов называется от завершения вызова а это а что тебе заголовок


[04:36 - 04:54] content type все остальные а заголовке можно указать уже после создания объекта а вот вы создали объект а теперь сплошь вот он вас переменная респонса эта переменная также ведет себя как словарь


[04:54 - 05:09] то есть она не является словарем но она обладает функциями словарях не можно в час а в нее можно записывать переменной по индексу а по ключу и


[05:09 - 05:26] используются объекты как словарь вы просто записывает необходимые нам заголовке ключ это имя заголовка значения что есть назначение заголовка данном случае используется а заголовок content disposition который заставляет браузер


[05:26 - 05:44] не отображается а предложить его сохранить ну знаете что я предлагаю хранить файлы на диске соответственно фоминым указывает имя файла в котором браузер предложит его сохранить а


Step 4 (S-44787) 2.png

[05:44 - 06:00] в случае заголовком куки то есть а у нас есть среди всех заголовков подзаголовков cookie из cookie а они используются чаще поэтому установка получения


[06:00 - 06:16] а куки джанги сделан отдельным методом а вы можете получив объект response вместо использования как а словаря вызвать метод сотрудники


[06:16 - 06:31] передается имя куки значение и а через именованные параметры можно передавать а дополнительные дополнительные опции куки а например


[06:31 - 06:47] примерный с указать secure равняется тру а это означает что данная услуга будет доступна только для протокола esp то есть по протоколу теперь на передаваться не будет


[06:47 - 07:02] подробнее про атрибуты мы поговорим позже когда буду говорить про авторизацию пока смотрим простой вариант а допустим у нас был какой то запрос и мы а при возвращении ответа выставили


[07:02 - 07:17] сотри куки весь этот 1 при следующем запросе это значение оно вернется к нам на сервер и будет доступна в словаре cookies


[07:17 - 07:35] а его можно будет извлечь соответственно с помощью инструкции гет в итоге переменных зависит от вас будет строка 1 мы можем проверить а этот флажок и как то изменить логику поведения например


[07:35 - 07:50] не показывать блок то есть типичный пример мы хотим показать какой то блок пользователь только 1 раз когда он ее увидел 2 раз показывал смысла нет а вот такое грязное решение с использованием cookie можно осуществить


[07:50 - 08:00] итак мы рассмотрели как использовать заголовки в частности как использовать cookie из джанго views