當前位置:成語大全網 - 新華字典 - request-response

request-response

scheme body(原始的請求體) POST(對應可轉換的內容)

另外提供了read這樣的文件類接口使用

path(請求的完整路徑不包含模式和域名) path_info(對於壹些服務器,把域名後的url分成了腳本前綴部分和路徑信息部分 path_info肯定是全部的)

使用path_info總是能拿到域名後的完整的url

method(方法名 大寫) encoding(默認用utf-8 在DEFAULT_CHARSET,可以改變encoding的值再獲取GET POST) content_type(字符類型拿請求頭部的CONTENT_TYPE) content_params(字典類型拿請求頭部的CONTENT_TYPE)

GET POST body FILES COOKIES

META(所有的頭部 會轉換名字 都搞成大寫的下劃線分割的同時有HTTP_的前綴)

resolver_match是對應ResolverMatch的實例,代表解析得的URL,在view中可用,但是在解析之前的middleware是獲取不到的

current_app 用於url template tag,在reverse函數的current_app參數

urlconf 用於root url conf而不是用ROOT_URLCONF中的設置

session 由SessionMiddleware設置 可讀可寫 字典類

site 由CurrentSiteMiddleware設置 是Site或RequestSite的實例,是通過get_current_site來獲取的

user 由AuthenticationMiddleware設置 是AUTH_USER_MODEL對應的實例代表當前登錄的用戶,未登錄的獲取的是AnonymousUser,可通過request.user.is_authenticated來判斷

get_host 獲得請求的主機 通過HTTP_X_FORWARDED_HOST否則用HTTP_HOST,都沒有則使用SERVER_NAME和SERVER_PORT的組合

get_full_path 獲得path加查詢字符串query_string

build_absolute_uri(location) 將location轉換為絕對地址,location不傳入時用的是get_full_path獲取,如果已經是絕對地址則不修改,用的是請求中的服務信息,例如http和https的設置

get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 返回壹個簽名的cookie值,或拋出BadSignature異常,如果設置了default則返回該值而不拋出異常,可以加鹽,可以設置過期

is_secure 查看是否https

is_ajax 查看是否Ajax請求,即查看頭部的HTTP_X_REQUESTED_WITH

read readline readlines xreadlines iter

主要是處理壹個名字多個值的情況,因為對於HTML中的form元素,多選的,都是相同的名字,不同的值

通過GET POST獲取的都是不可修改的,可以使用.copy()來獲取可修改的版本

實現了標準字典的所有方法

QueryDict. init (query_string=None, mutable=False, encoding=None)

classmethod QueryDict.fromkeys(iterable, value='', mutable=False, encoding=None)

QueryDict. getitem (key) 如果對應多個值 返回最後壹個

QueryDict. setitem (key, value) 設置值 value應為列表

QueryDict. contains (key) 判斷是否包含

QueryDict.get(key, default=None) 返回對應的值 沒有則返回default

QueryDict.setdefault(key, default=None) 沒有值則設置為default

QueryDict.update(other_dict)

QueryDict.items()

QueryDict.iteritems()

QueryDict.iterlists()

QueryDict.values()

QueryDict.itervalues()

QueryDict.copy()

QueryDict.getlist(key, default=None)

QueryDict.setlist(key, list_)

QueryDict.appendlist(key, item)

QueryDict.setlistdefault(key, default_list=None)

QueryDict.lists()

QueryDict.pop(key)

QueryDict.popitem()

QueryDict.dict()

QueryDict.urlencode(safe=None)

直接傳遞字符串

response = HttpResponse("Here's the text of the Web page.")

增量內容

response = HttpResponse()

response.write("<p>Here's the text of the Web page.</p>")

response.write("<p>Here's another paragraph.</p>")

使用StreamingHttpResponse來消費可叠代對象

按字典使用來設置HTTP頭部

response["Accept"] = "json"

del response['Age']

告訴瀏覽器返回的response是文件

response = HttpResponse(my_data, content_type='application/vnd.ms-excel')

response['Content-Disposition'] = 'attachment; filename="foo.xls"'

content charset status_code reason_phrase streaming closed

HttpResponse. init (content='', content_type=None, status=200, reason=None, charset=None)

setitem delitem getitem

has_header setdefault

set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)

set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)

delete_cookie(key, path='/', domain=None)

write(content) flush() tell() getvalue() readable() seekable() writable() writelines(lines)