日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

Django 获取前端发送的头文件

發布時間:2025/7/14 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django 获取前端发送的头文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django里面,我們知道可以在函數里面里面通過參數獲取前端發來的數據。

比如可以通過request獲取各種form的值啊,cookie啊等等。

def?index(reqeust):#?獲取當前已經登錄的用戶v?=?reqeust.COOKIES.get('username111')return?render(reqeust,'index.html',{'current_user':?v})


這些方法是Django把一些常用的數據已經替我們封裝好了,因此可以直接使用。但是這些方法并不全,比如我刷新一個頁面,這個請求的頭文件里面,包含了一堆關于客戶端的信息,如何獲取所有的信息呢?



我們可以通過request.environ來獲取


首先需要導入一個類,如果忘記了這個類的名字,可以直接print(type(request))來獲取。


<class?'django.core.handlers.wsgi.WSGIRequest'>


environ本質是個字典格式,因此可以直接print(k,v)獲取所有的key和value,也可以通過對應的key來輸出value


def?tpl1(request):from?django.core.handlers.wsgi?import?WSGIRequestprint(type(request))print(request.environ)for?k,v?in?request.environ.items():print(k,v)print(request.environ['HTTP_USER_AGENT'])user_list?=?[1,?2,?3,?43]return?render(request,?'tpl1.html',?{'u':?user_list})


輸出結果:

{'ASL.LOG':?'Destination=file',?'PYTHONIOENCODING':?'UTF-8',?'wsgi.run_once':?False,?'FPS_BROWSER_APP_PROFILE_STRING':?'Internet?Explorer',?'REMOTE_ADDR':?'127.0.0.1',?'PROCESSOR_IDENTIFIER':?'Intel64?Family?6?Model?69?Stepping?1,?GenuineIntel',?'TEMP':?'C:\\Users\\yuan.li\\AppData\\Local\\Temp',?'USERPROFILE':?'C:\\Users\\yuan.li',?'SERVER_PORT':?'8000',?'WINDIR':?'C:\\WINDOWS',?'SYSTEMDRIVE':?'C:',?'FP_NO_HOST_CHECK':?'NO',?'COMMONPROGRAMFILES(X86)':?'C:\\Program?Files?(x86)\\Common?Files',?'USERDNSDOMAIN':?'OMNICOM.COM.AU',?'HTTP_UPGRADE_INSECURE_REQUESTS':?'1',?'PROGRAMFILES':?'C:\\Program?Files?(x86)',?'USERDOMAIN_ROAMINGPROFILE':?'OMNICOM',?'wsgi.url_scheme':?'http',?'wsgi.input':?<_io.BufferedReader?name=760>,?'APPDATA':?'C:\\Users\\yuan.li\\AppData\\Roaming',?'TMP':?'C:\\Users\\yuan.li\\AppData\\Local\\Temp',?'HTTP_ACCEPT_ENCODING':?'gzip,?deflate,?br',?'GATEWAY_INTERFACE':?'CGI/1.1',?'PATH_INFO':?'/tpl1/',?'PUBLIC':?'C:\\Users\\Public',?'HTTP_COOKIE':?'csrftoken=eIEjNdtcPYmGD2jGDfEwxb0MwePMQTuLWchxG85P7zH7wHN2BZmERsppA4PHGd6D',?'PROCESSOR_ARCHITEW6432':?'AMD64',?'COMPUTERNAME':?'YLI-PC',?'wsgi.version':?(1,?0),?'ONEDRIVE':?'C:\\Users\\yuan.li\\OneDrive',?'CONTENT_TYPE':?'text/plain',?'PROGRAMW6432':?'C:\\Program?Files',?'PYTHONUNBUFFERED':?'1',?'wsgi.errors':?<_io.TextIOWrapper?name='<stderr>'?mode='w'?encoding='UTF-8'>,?'RUN_MAIN':?'true',?'PSMODULEPATH':?'C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules\\;C:\\Program?Files?(x86)\\VMware\\Infrastructure\\vSphere?PowerCLI\\Modules',?'wsgi.file_wrapper':?<class?'wsgiref.util.FileWrapper'>,?'HOMEPATH':?'\\Users\\yuan.li',?'COMSPEC':?'C:\\WINDOWS\\system32\\cmd.exe',?'USERNAME':?'yuan.li',?'PATHEXT':?'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW',?'SERVER_NAME':?'vmware-localhost',?'USERDOMAIN':?'OMNICOM',?'SCRIPT_NAME':?'',?'PYCHARM_HOSTED':?'1',?'QUERY_STRING':?'',?'PROGRAMDATA':?'C:\\ProgramData',?'NUMBER_OF_PROCESSORS':?'4',?'FPS_BROWSER_USER_PROFILE_STRING':?'Default',?'SERVER_PROTOCOL':?'HTTP/1.1',?'HTTP_CONNECTION':?'keep-alive',?'REMOTE_HOST':?'',?'HTTP_ACCEPT_LANGUAGE':?'en-GB,en-US;q=0.8,en;q=0.6',?'HTTP_CACHE_CONTROL':?'max-age=0',?'HTTP_ACCEPT':?'text/html,application/xhtml+xml,application/xml;q=0.9,p_w_picpath/webp,p_w_picpath/apng,*/*;q=0.8',?'wsgi.multiprocess':?False,?'ALLUSERSPROFILE':?'C:\\ProgramData',?'SYSTEMROOT':?'C:\\WINDOWS',?'SERVER_SOFTWARE':?'WSGIServer/0.2',?'PROCESSOR_REVISION':?'4501',?'SESSIONNAME':?'Console',?'HTTP_HOST':?'127.0.0.1:8000',?'CONTENT_LENGTH':?'',?'PATH':?'C:\\Program?Files?(x86)\\Business?Objects\\Common\\3.5\\bin\\NOTES\\;C:\\Program?Files?(x86)\\Business?Objects\\Common\\3.5\\bin\\NOTES\\DATA\\;C:\\Python35-32\\Scripts\\;C:\\Python35-32\\;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program?Files?(x86)\\Sennheiser\\SoftphoneSDK\\;C:\\Python35-32\\Scripts;C:\\Users\\yuan.li\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Program?Files?(x86)\\Nmap;',?'OS':?'Windows_NT',?'PYTHONPATH':?'C:\\s14day21',?'HOMEDRIVE':?'C:',?'COMMONPROGRAMW6432':?'C:\\Program?Files\\Common?Files',?'DJANGO_SETTINGS_MODULE':?'s14day21.settings',?'PROCESSOR_ARCHITECTURE':?'x86',?'REQUEST_METHOD':?'GET',?'LOCALAPPDATA':?'C:\\Users\\yuan.li\\AppData\\Local',?'PROCESSOR_LEVEL':?'6',?'HTTP_USER_AGENT':?'Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/59.0.3071.115?Safari/537.36',?'PROGRAMFILES(X86)':?'C:\\Program?Files?(x86)',?'LOGONSERVER':?'\\\\MELDC01',?'wsgi.multithread':?True,?'COMMONPROGRAMFILES':?'C:\\Program?Files?(x86)\\Common?Files'} ASL.LOG?Destination=file PYTHONIOENCODING?UTF-8 wsgi.run_once?False FPS_BROWSER_APP_PROFILE_STRING?Internet?Explorer REMOTE_ADDR?127.0.0.1 PROCESSOR_IDENTIFIER?Intel64?Family?6?Model?69?Stepping?1,?GenuineIntel TEMP?C:\Users\yuan.li\AppData\Local\Temp USERPROFILE?C:\Users\yuan.li SERVER_PORT?8000 WINDIR?C:\WINDOWS SYSTEMDRIVE?C: FP_NO_HOST_CHECK?NO COMMONPROGRAMFILES(X86)?C:\Program?Files?(x86)\Common?Files USERDNSDOMAIN?OMNICOM.COM.AU HTTP_UPGRADE_INSECURE_REQUESTS?1 PROGRAMFILES?C:\Program?Files?(x86) USERDOMAIN_ROAMINGPROFILE?OMNICOM wsgi.url_scheme?http wsgi.input?<_io.BufferedReader?name=760> APPDATA?C:\Users\yuan.li\AppData\Roaming TMP?C:\Users\yuan.li\AppData\Local\Temp HTTP_ACCEPT_ENCODING?gzip,?deflate,?br GATEWAY_INTERFACE?CGI/1.1 PATH_INFO?/tpl1/ PUBLIC?C:\Users\Public HTTP_COOKIE?csrftoken=eIEjNdtcPYmGD2jGDfEwxb0MwePMQTuLWchxG85P7zH7wHN2BZmERsppA4PHGd6D PROCESSOR_ARCHITEW6432?AMD64 COMPUTERNAME?YLI-PC wsgi.version?(1,?0) ONEDRIVE?C:\Users\yuan.li\OneDrive CONTENT_TYPE?text/plain PROGRAMW6432?C:\Program?Files PYTHONUNBUFFERED?1 wsgi.errors?<_io.TextIOWrapper?name='<stderr>'?mode='w'?encoding='UTF-8'> RUN_MAIN?true PSMODULEPATH?C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\;C:\Program?Files?(x86)\VMware\Infrastructure\vSphere?PowerCLI\Modules wsgi.file_wrapper?<class?'wsgiref.util.FileWrapper'> HOMEPATH?\Users\yuan.li COMSPEC?C:\WINDOWS\system32\cmd.exe USERNAME?yuan.li PATHEXT?.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW SERVER_NAME?vmware-localhost USERDOMAIN?OMNICOM SCRIPT_NAME? PYCHARM_HOSTED?1 QUERY_STRING? PROGRAMDATA?C:\ProgramData NUMBER_OF_PROCESSORS?4 FPS_BROWSER_USER_PROFILE_STRING?Default SERVER_PROTOCOL?HTTP/1.1 HTTP_CONNECTION?keep-alive REMOTE_HOST? HTTP_ACCEPT_LANGUAGE?en-GB,en-US;q=0.8,en;q=0.6 HTTP_CACHE_CONTROL?max-age=0 HTTP_ACCEPT?text/html,application/xhtml+xml,application/xml;q=0.9,p_w_picpath/webp,p_w_picpath/apng,*/*;q=0.8 wsgi.multiprocess?False ALLUSERSPROFILE?C:\ProgramData SYSTEMROOT?C:\WINDOWS SERVER_SOFTWARE?WSGIServer/0.2 PROCESSOR_REVISION?4501 SESSIONNAME?Console HTTP_HOST?127.0.0.1:8000 CONTENT_LENGTH? PATH?C:\Program?Files?(x86)\Business?Objects\Common\3.5\bin\NOTES\;C:\Program?Files?(x86)\Business?Objects\Common\3.5\bin\NOTES\DATA\;C:\Python35-32\Scripts\;C:\Python35-32\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program?Files?(x86)\Sennheiser\SoftphoneSDK\;C:\Python35-32\Scripts;C:\Users\yuan.li\AppData\Local\Microsoft\WindowsApps;C:\Program?Files?(x86)\Nmap; OS?Windows_NT PYTHONPATH?C:\s14day21 HOMEDRIVE?C: COMMONPROGRAMW6432?C:\Program?Files\Common?Files DJANGO_SETTINGS_MODULE?s14day21.settings PROCESSOR_ARCHITECTURE?x86 REQUEST_METHOD?GET LOCALAPPDATA?C:\Users\yuan.li\AppData\Local PROCESSOR_LEVEL?6 HTTP_USER_AGENT?Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/59.0.3071.115?Safari/537.36 PROGRAMFILES(X86)?C:\Program?Files?(x86) LOGONSERVER?\\MELDC01 wsgi.multithread?True COMMONPROGRAMFILES?C:\Program?Files?(x86)\Common?Files Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/59.0.3071.115?Safari/537.36


注意最后的那個輸出結果HTTP_USER_AGENT, 這個是客戶端的信息,我們可以根據這個做判斷,然后返回不同的結果,比如手機版和PC版返回的顯示排版不同。



除了通過WSGI的類來獲取header的信息,我們還有2個方式可以獲取, request.body和request.META


request.META獲取的數據和WSGI一樣,但是他就是個純粹的字符串,不像字典已經分好鍵值對了那么容易提取數據;


request.body 在使用PUT,POST, ?DELETE等方式提交表單的時候很有用,因為我們知道GET請求的值是在URL里面可以直接獲取的,其他的方式則是把值封裝在body里面以byte的方式發送的。例如

def?business(request):if?request.method=='GET':v1?=?models.Business.objects.all()print(v1)return?render(request,?'business.html',?{'v1':?v1})elif?request.method=='POST':u=request.POST.get('caption')models.Business.objects.create(caption=u)print(request.body)return??redirect('/business')


我在前端執行一個POST的操作,提交一個數據

返回的結果

b'caption=sssssss'


轉載于:https://blog.51cto.com/beanxyz/1954354

總結

以上是生活随笔為你收集整理的Django 获取前端发送的头文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。