前の記事では、web.py の最初のページ、hello word について説明しました。引き続き web.py プログラミングを掘り下げ、web.py の Cookie 設定について説明します。
Web プログラミングを学んだことのある人は、Cookie についてよく知っていると思います。Web プログラミングでは、Cookie が非常に重要な役割を果たします。ユーザーのログイン、確認コード、セッション (Cookie に基づく)、言語セレクター、ID 認識などにはすべて Cookie が含まれています。では、web.py に Cookie を設定するにはどうすればよいでしょうか?
実際、web.py での Cookie の設定は非常に簡単です。web.py はすでにこれを考えており、非常にシンプルで便利な関数を提供しています:
setcookie(name, value, expires="", domain=None, secure=False)
パラメータの詳細:
name (文字列) - ブラウザによって保存され、サーバーに送信される Cookie の名前。
value (文字列) - Cookie の名前に対応する Cookie の値。
expires (int) - Cookie の有効期限はオプションのパラメータです。すぐに。これは整数である必要があり、決して文字列ではありません。オプションのパラメータ。このパラメータを記述しない場合、デフォルトで永続的に有効になります。
domain (文字列) - Cookie の有効なドメイン - Cookie はこのドメイン内で有効です。一般に、特定のサイト内で使用できるようにするには、パラメータ値をサイト所有者のホスト名 (wiki.webpy.org など) ではなく、サイトのドメイン (.webpy.org など) として記述する必要があります。オプションのパラメータ
secure (bool) - True の場合、この Cookie は HTTPS 経由でのみ送信される必要があります。オプションのパラメーター
例:
#设置website的值为www.pythontab.com,有效期60秒 web.setcookie("website", "www.pythontab.com", 60)
例
次のように web.setcookie() を使用して Cookie を設定します。
を使用して上記を呼び出しますGET メソッド このクラスは、age という名前の Cookie をデフォルト値 25 で設定します (実際には、デフォルト値 25 が web.input の i.age に割り当てられているため、Cookie をメソッド内の Cookie に直接割り当てるのではなく、間接的に割り当てます)。 setcookie 関数) 。この Cookie は 1 時間 (つまり 3600 秒) で期限切れになります。
web.setcookie() の 3 番目のパラメーター - "expires" はオプションのパラメーターであり、Cookie の有効期限を設定するために使用されます。負の数の場合、Cookie はすぐに期限切れになります。正の数値の場合は、Cookie の有効期間を秒単位で示します。このパラメータが空の場合、Cookie は期限切れになりません。
Cookieの取得
概要
Cookieの値を取得するには多くの方法があります。違いは、Cookieが見つからない場合の対処方法にあります。
方法 1 (Cookie が見つからない場合は None を返す):
get メソッドを通じて
class CookieSet: def GET(self): i = web.input(age='25') web.setcookie('age', i.age, 3600) return "Age set in your cookie"
を取得する
方法 2 (Cookie が見つからない場合は AttributeError をスローする)例外 ):
#通过设置的cookie的名字获取cookie,例如website #web.cookies().get("website") web.cookies().get(cookieName)
方法 3 (Cookie が見つからない場合、例外のスローを避けるためにデフォルト値を設定できます):
#先把cookie对象赋值给一个变量,然后通过cookie的名字获得 #例如:foo.website foo = web.cookies() foo.cookieName
Cookie の値が存在するかどうかを確認します。
これを行うことができます:
#该方法最大的特点就是可以设置cookie的默认值 foo = web.cookies(cookieName=defaultValue) #如果不存在该cookieName,就会返回设置的默认cookie foo.cookieName
または
class CookieGet: def GET(self): try: return "Your website name is: " + web.cookies().website except: #抛出异常处理 return "Cookie 不存在."