最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python后臺(tái)開發(fā)Django會(huì)話控制的實(shí)現(xiàn)

 更新時(shí)間:2019年04月15日 08:25:12   作者:東小東  
這篇文章主要介紹了Python后臺(tái)開發(fā)Django會(huì)話控制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

頁面跳轉(zhuǎn)

頁面跳轉(zhuǎn)的url中必須在最后會(huì)自動(dòng)添加【\】,所以在urls.py的路由表中需要對(duì)應(yīng)添加【\】

from django.shortcuts import redirect #導(dǎo)入
return redirect("admin/") #本地頁面跳轉(zhuǎn)
return redirect("https://www.cnblogs.com/dongxiaodong/") #其他網(wǎng)站跳轉(zhuǎn)

本地跳轉(zhuǎn)需要參考urls.py的路由表

urlpatterns = [
  path('admin/', admin.site.urls),
  path("dong/",views.homex),#添加URL對(duì)應(yīng)關(guān)系
]

Cookie

設(shè)置 cookie

# 本地頁面跳轉(zhuǎn)
from django.shortcuts import redirect # 導(dǎo)入
retx = redirect("dong/")
# 返回文件,并匹配值
from django.shortcuts import render #導(dǎo)入
retx= render(requestx, "loginx.html",{"dongkk1":"替換值1","dongkk2":"替換值2"}) 
#返回字符串
from django.shortcuts import HttpResponse
retx=HttpResponse("東小東【dongxiaodong】")
#設(shè)置cookie
retx.set_cookie("dname", "dongxiaodong")
retx.set_cookie("dname2", "dongxiaodongxx",max_age=100)#設(shè)置超時(shí)時(shí)間,單位為秒

return retx

獲取cookie

dnamex=requestx.COOKIES.get("dname")

刪除

設(shè)置cookie的超時(shí)時(shí)間為過去時(shí)間即可

Cookie加密

retx.set_signed_cookie("dong3","dongxiaodong33",salt="任意字符串(密文)") #cookie通過密文加密
dnamex3 = requestx.get_signed_cookie("dong3", salt="對(duì)應(yīng)設(shè)置cookie時(shí)的密文") # 獲取cookie

Session

依賴于cookie的sessionid的隨機(jī)字符串,默認(rèn)超時(shí)時(shí)間為瀏覽器不退出情況下的兩周或者瀏覽器退出就立即失效

設(shè)置

requestx.session["dongss"]="dongxiaodongsss"
requestx.session.set_expiry(60*60)#設(shè)置超時(shí)時(shí)間,單位為秒

獲取

dnamex = requestx.session["dongss"]
dnamex = requestx.session.get("dongss")#無該鍵時(shí)程序不會(huì)報(bào)錯(cuò)
ssid = requestx.session.session_key #得到sessionid,值與cookie保存的相同

刪除

del requestx.session["dongss"]
requestx.session.clear() #清空所有session

相關(guān)配置(setting.py)

SESSION_COOKIE_NAME="sessionid"     # Session的cookie保存在瀏覽器上時(shí)的key,即:sessionid=隨機(jī)字符串(默認(rèn))
SESSION_COOKIE_PATH="/"         # Session的cookie保存的路徑(默認(rèn))
SESSION_COOKIE_DOMAIN = None       # Session的cookie保存的域名(默認(rèn))
SESSION_COOKIE_SECURE = False      # 是否Https傳輸cookie(默認(rèn))
SESSION_COOKIE_HTTPONLY = True      # 是否Session的cookie只支持http傳輸(默認(rèn))
SESSION_COOKIE_AGE = 1209600       # Session的cookie失效日期(2周)(默認(rèn))
SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # 是否關(guān)閉瀏覽器使得Session過期(默認(rèn))
# 是否每次請(qǐng)求都保存Session,默認(rèn)修改之后才保存(默認(rèn))
#如果SESSION_SAVE_EVERY_REQUEST = True時(shí),可以配合requestx.session.set_expiry(60*60),實(shí)現(xiàn)無操作一分鐘后頁面session清除,頁面失效
SESSION_SAVE_EVERY_REQUEST = False

中間件

所有的請(qǐng)求都會(huì)先進(jìn)入中間件處理,執(zhí)行完所有中間件(MIDDLEWARE = [ ])才會(huì)進(jìn)入urls.py進(jìn)行路由,然后進(jìn)入對(duì)應(yīng)的APP的views.py中執(zhí)行邏輯處理,中間件可以獲取到請(qǐng)求的任意數(shù)據(jù),可以做一些IP黑名單等處理

CSR保護(hù)

Post提交數(shù)據(jù)時(shí),Django自動(dòng)會(huì)進(jìn)行CSR驗(yàn)證,在POST提交數(shù)據(jù)端需要提交一條隨機(jī)字符串,服務(wù)器會(huì)匹配其的內(nèi)容

設(shè)置是否需要全局csr保護(hù)

全局設(shè)置:

需要在setting.py設(shè)置MIDDLEWARE = [ ],

如果注釋【'django.middleware.csrf.CsrfViewMiddleware',】則表示不用驗(yàn)證,反之

部分設(shè)置(優(yōu)先級(jí)高):

在APP對(duì)應(yīng)views.py下添加函數(shù)裝飾器即可實(shí)現(xiàn)

from django.views.decorators.csrf import csrf_exempt,csrf_protect
@csrf_protect #強(qiáng)制添加保護(hù)
def xx1(requestx):
  pass
@csrf_exempt  #強(qiáng)制取消保護(hù)
def xx2(requestx):
  pass

Form表單里的post請(qǐng)求:

<form action="" method="post">
  {% csrf_token %}
  <input type="text" name="xx">
  <input type="submit" value="提交了">
</form>

Ajax里的post請(qǐng)求,需要獲取cookie的csrf值,并以請(qǐng)求頭的方式發(fā)送到服務(wù)器

headers:{"X-CSRFtoken":$.cookie("csrftoken")},

添加中間件

在工程下建立任意名字的文件夾,然后在文件夾中建立任意名字的python文件,如在工程同名目錄下建立ruledong.py文件:

from django.utils.deprecation import MiddlewareMixin
#自定義中間件1
class Dong1(MiddlewareMixin):
  def process_request(self,requestx):
    print("dong1111111")
    print("你的設(shè)備基本信息:", requestx.environ.get("HTTP_USER_AGENT", "w"))
    print("你的IP地址:", requestx.environ.get("REMOTE_ADDR", "w"))
#自定義中間件2
class Dong2(MiddlewareMixin):
  def process_request(self,requestx):
    print("dong22222222")
    if requestx.GET.get("idx") != "4":
      # 返回字符串,以此為終點(diǎn),中斷所有
      from django.shortcuts import HttpResponse
      return HttpResponse("東小東【請(qǐng)求失敗】")

在setting的MIDDLEWARE = [ ]的最后添加,添加規(guī)則為前面的先被執(zhí)行

'dongjg.ruledong.Dong1',
'dongjg.ruledong.Dong2',

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Anaconda安裝以及修改環(huán)境默認(rèn)位置圖文教程

    Anaconda安裝以及修改環(huán)境默認(rèn)位置圖文教程

    Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持Linux,Mac, Windows, 包含了眾多流行的科學(xué)計(jì)算、數(shù)據(jù)分析的 Python 包,下面這篇文章主要給大家介紹了關(guān)于Anaconda安裝以及修改環(huán)境默認(rèn)位置的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Python爬蟲動(dòng)態(tài)ip代理防止被封的方法

    Python爬蟲動(dòng)態(tài)ip代理防止被封的方法

    在本篇文章中小編給大家整理了關(guān)于Python爬蟲動(dòng)態(tài)ip代理防止被封的方法以及實(shí)例代碼,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • Python學(xué)習(xí)之Anaconda的使用與配置方法

    Python學(xué)習(xí)之Anaconda的使用與配置方法

    我在學(xué)習(xí)Python的爬蟲框架中看到看到了anaconda的介紹,簡(jiǎn)直是相見恨晚啊,我覺的每個(gè)Python的學(xué)習(xí)網(wǎng)站上首先都應(yīng)該使用anaconda來進(jìn)行教程,因?yàn)樵趯?shí)踐的過程中光環(huán)境的各種報(bào)錯(cuò)就能消磨掉你所有的學(xué)習(xí)興趣
    2018-01-01
  • python?協(xié)程并發(fā)數(shù)控制

    python?協(xié)程并發(fā)數(shù)控制

    這篇文章主要介紹了python?協(xié)程并發(fā)數(shù)控制,文章基于python的相關(guān)資料展開對(duì)主題煩人詳細(xì)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Python反射的用法實(shí)例分析

    Python反射的用法實(shí)例分析

    這篇文章主要介紹了Python反射的用法,結(jié)合實(shí)例形式分析了Python反射機(jī)制所涉及的幾個(gè)常用方法與相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • Windows安裝Python、pip、easy_install的方法

    Windows安裝Python、pip、easy_install的方法

    這篇文章主要介紹了Windows安裝Python、pip、easy_install的方法,需要的朋友可以參考下
    2017-03-03
  • Centos7 Python3下安裝scrapy的詳細(xì)步驟

    Centos7 Python3下安裝scrapy的詳細(xì)步驟

    這篇文章主要介紹了Centos7 Python3下安裝scrapy的詳細(xì)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 論文查重python文本相似性計(jì)算simhash源碼

    論文查重python文本相似性計(jì)算simhash源碼

    這篇文章主要為大家介紹了python文本相似性計(jì)算simhash源碼來實(shí)現(xiàn)論文的查重,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • tensorflow查看ckpt各節(jié)點(diǎn)名稱實(shí)例

    tensorflow查看ckpt各節(jié)點(diǎn)名稱實(shí)例

    今天小編就為大家分享一篇tensorflow查看ckpt各節(jié)點(diǎn)名稱實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 通過cmd進(jìn)入python的步驟

    通過cmd進(jìn)入python的步驟

    在本篇文章里小編給大家整理了關(guān)于通過cmd進(jìn)入python的步驟和實(shí)例,需要的朋友們可以參考下。
    2020-06-06

最新評(píng)論

通化县| 乐山市| 长宁区| 韩城市| 阳城县| 将乐县| 潞西市| 呼伦贝尔市| 竹北市| 河北区| 蚌埠市| 通城县| 平江县| 翁源县| 绍兴县| 阿拉善左旗| 开鲁县| 六枝特区| 江孜县| 铜梁县| 巫山县| 乌兰察布市| 唐海县| 电白县| 揭阳市| 东明县| 沂南县| 清徐县| 雅安市| 岳阳市| 清河县| 台江县| 阿尔山市| 沙雅县| 濉溪县| 师宗县| 大石桥市| 卓尼县| 德兴市| 临沧市| 彰化县|