クッキーでDjangoアプリケーションを覚えておいてください

はじめにクッキー

  HTTPプロトコルはステートレスであるため、その実装と、前または後続の要求の結果は、直接私たちが保存する必要があるいくつかのデータを生成するサーバーとブラウザセッションに関連ではなく、HTTPプロトコルであるためデータを書き込むプロパティは、このように私たちはいくつかのデータを保存し、ある状態を、維持するために、クッキー生まれた、保存されません。

  クッキーは、それがサーバー情報のビットですブラウザはサーバがこの情報を運ぶアクセス次回、その後、地元のブラウザに保存されている鍵の束を送信し、サーバは、有用な情報を抽出することができます

ユースケース

  直接アクセスすることができ、小さな例を着陸、ユーザーがログインしていないとき、インデックスページがログイン画面にジャンプします。ログインアクセスがクッキーを運ぶでしょう、サーバは情報を抽出し、アクセス

1つの デフcheck_login(FUNC):
 2      @wraps(FUNC)
 3      DEF内(リクエスト、*引数、** kwargsから):
 4          であれば request.COOKIES.get(' _login ')== ' はい' 5              リターン FUNC(要求、*引数、** kwargsから)
 6          7              戻りリダイレクト(F ' /login/?before_url={request.path_info} ' 8      リターンインナー
 9  
10  
11  
12  デフログイン(リクエスト):
 13     場合 request.methodは== ' GET ' 14          リターンは(要求、レンダリング' login.htmlと' 15      ELIFの request.method == ' POST ' 16          ユーザー= request.POST.get(' ユーザー' 17          パスワード=リクエストを.POST.get(' パスワード' 18  
19          もしユーザ== ' baoyuan '  及びパスワード== ' baoyuan123 ' 20             nexturl = request.GET.get(' before_url ' 21              ならnexturl:
 22                  = RET リダイレクト(nexturl)
 23                  ret.set_cookie(' _login '' はい' 24                  リターンRET
 25              26                  RET =リダイレクト(' /インデックス/ ' 27                  ret.set_cookie(' _login ' ' はい" 28                 リターンRET
 29          30              リターンレンダリング(リクエスト、' login.htmlと' { ' エラー'' 用户名或密码错误' })
 31  
32  @check_login
 33  デフ指数(要求):
 34      リターンレンダリング(要求、' インデックス.htmlの' 35  
36  @check_login
 37  DEF personal_info(リクエスト):
 38      リターンレンダリング(リクエスト、' personal_info.html '

 

おすすめ

転載: www.cnblogs.com/laycare/p/11800443.html