ホームページ >バックエンド開発 >Python チュートリアル >web.py cookieを使用したCookieの設定と取得

web.py cookieを使用したCookieの設定と取得

高洛峰
高洛峰オリジナル
2016-10-17 14:42:322168ブラウズ

前の記事では、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 不存在."


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。