Request對象
從Request對象中獲取數(shù)據(jù):
URL相關(guān)信息
HttpRequest對象包含當(dāng)前請求URL的一些信息, 可以用以下方式獲瓤反稀:
屬性/方法 | 說明 | 輸出舉例 |
---|---|---|
request.path | 除域名以外的請求路徑,以正斜杠開頭 | "/hello/" |
request.get_host() | 主機(jī)名(比如尺锚,通常所說的域名) | "127.0.0.1:8000" or "www.example.com" |
request.get_full_path() | 請求路徑酷师,可能包含查詢字符串 | "/hello/?print=true" |
request.is_secure() | 如果通過HTTPS訪問讶凉,則此方法返回True, 否則返回False True 或者 False | $1 |
request.META
request.META 是一個Python字典山孔,包含了所有本次HTTP請求的Header信息懂讯,比如用戶IP地址和用戶Agent(通常是瀏覽器的名稱和版本號)。 注意台颠,Header信息的完整列表取決于用戶所發(fā)送的Header信息和服務(wù)器端設(shè)置的Header信息褐望。 這個字典中幾個常見的鍵值有:
HTTP_REFERER,進(jìn)站前鏈接網(wǎng)頁串前,如果有的話瘫里。 (請注意榕暇,它是REFERRER的筆誤淮悼。)
HTTP_USER_AGENT,用戶瀏覽器的user-agent字符串,如果有的話玩荠。 例如: "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" .
REMOTE_ADDR 客戶端IP,如:"12.345.67.89" 。(如果申請是經(jīng)過代理服務(wù)器的話阶冈,那么它可能是以逗號分割的多個IP地址闷尿,如:"12.345.67.89,23.456.78.90" 。)
//META數(shù)據(jù)獲取實(shí)例
def ua_display_bad(request):
ua = request.META['HTTP_USER_AGENT'] # Might raise KeyError!
return HttpResponse("Your browser is %s" % ua)
request.POST
request.POST
是一個類字典對象女坑,讓你可以通過關(guān)鍵字的名字獲取提交的數(shù)據(jù)填具。
注意,Django 還以同樣的方式提供 request.GET
用于訪問 GET 數(shù)據(jù) —— 但我們在代碼中顯式地使用 request.POST
匆骗,以保證數(shù)據(jù)只能通過 POST 調(diào)用改動劳景。
如果post沒有獲取到變量傳入, 則會引發(fā)一個 KeyError
//獲取傳入的參數(shù)choice
choice = request.POST['choice']
表單
表單操作流程官方教材已經(jīng)很詳細(xì), 不需要另外補(bǔ)充:
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial04/