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

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

Oct 17, 2016 pm 02:42 PM

前の記事では、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

See all articles