Django学習のRequestオブジェクト


簡単な栗を一つください.
urls.py
from django.conf.urls import url
from django.contrib import admin
from cmdb import views
urlpatterns = [
    url('login/', views.index),
]

views.py
from django.shortcuts import render
from django.views.generic import View
# Create your views here.

class login(View)  
    def get(self,request):
        return render(request,'login.html')
    def post(self,request):
        user_input = []
        user  = request.POST.get('user',None) 
        email = request.POST.get('email',None)
        temp = {'user':user,'email':email}    
        USER_INPUT.append(temp)               
        return render(request,'login.html',{'data':USER_INPUT})

login.html



    
    Title


{#        post    index    #}
    
{# login #}

{% for item in data %} {% endfor %}
{{ item.user }} {{ item.email }}

プロセスの実行:
1)Djangoプロジェクトを実行し、URLを入力するhttp://127.0.0.1:8000/login
ブラウザ情報、クライアントアドレス、アクセスアドレスなどをrequestにカプセル化し、GET方式でloginのurl(アクセスページなのでGETリクエスト)に送信する
2)対応するurlにマッチ
urlに基づいて処理関数にマッチングし、直接ページを表示し、ログインページへのアクセスを完了します.
3)ログインページにユーザー名パスワードを入力し、ログインをクリックする
formフォームは入力した情報,ブラウザ情報,クライアントアドレス,アクセスアドレスなどをrequestオブジェクトにカプセル化し,post形式でloginのurlに送信する.
4)対応するurlにマッチ
5)urlが処理関数にマッチすることにより,post要求であることが判明し,postに処理させる.
6)POST処理が完了する、登録ユーザ等の情報をrequestにカプセル化し、コンテキストとともにloginに渡す.html、loginをレンダリングするために使用されます.html
requestオブジェクトのプロパティ
request.scheme#はリクエストのスキーマ、httpまたはhttpsを表します.
request.path#リクエストのパス、たとえばリクエスト127.0.0.1/org/list、この値は/org/listです
request.method#は、要求が使用するhttpメソッド、GETまたはPOST要求を表す
request.encoding#は、データをコミットする符号化方法を示す
request.GET#GETリクエストの取得
request.POST#はpostの要求を取得する、例えばフロントエンドでコミットされたユーザパスワードはrequestを通過することができる.POST.get()で取得
NOTICED:POSTでファイルをアップロードすると、ファイル情報がFILES属性に含まれます
request.COOKIES#すべてのクッキーを含む
request.META#標準のPython辞書で、すべてのHTTPヘッダが含まれています.特定のヘッダ情報は、クライアントとサーバによって異なります.次の例を示します.
CONTENT_LENGTH--要求された本文の長さ(文字列です).CONTENT_TYPE-要求された本文のMIMEタイプ.HTTP_ACCEPT:受信可能なContent-Typeに応答する.HTTP_ACCEPT_ENCODING--受信可能な符号化に応答する.HTTP_ACCEPT_LANGUAGE--受信可能な言語に応答します.HTTP_HOST-カスタマーサービス側から送られたHTTPホストヘッド.HTTP_REFERER-Referringページ.HTTP_USER_AGENT-クライアントのuser-agent文字列.QUERY_STRING:単一文字列形式のクエリ文字列(未解決形式).REMOTE_ADDR:クライアントのIPアドレス.REMOTE_HOST:クライアントのホスト名.REMOTE_USER-サーバー認証後のユーザー.REQUEST_METHOD:「GET」または「POST」などの文字列.SERVER_NAME:サーバーのホスト名.SERVER_PORT-サーバのポート(文字列)request.user#AUTH_1USER_MODELタイプのオブジェクトで、現在ログインしているユーザーを表します.
ユーザーが現在ログインしていない場合、userはdjangoに設定.contrib.auth.models.AnonymousUserの例です.あなたはisを通過することができますauthenticated()はそれらを区別する
requestをフロントエンドに渡すとき、フロントエンドは{%if request.user.is_authenticated%}でユーザを判断するときにrequestを登録することができる.session#現在のセッションを表す辞書に似た読み取り可能かつ書き込み可能なオブジェクト