Webツールを開発中で、Cookieの設定に問題があります。私は20年前にこれをPerlで使っていましたが、2017年にPythonでクッキーを処理するための明確でクリーンな方法がないように思われました。私は簡単で素早くなると思ったことは一日中終わった。私はクッキーを手動で設定し、要求モジュールを使用して実験し、Stack Overflowで見つけた多数の部分的なコード例を試しました。私が見たどこにいても、ドキュメンテーションは貧弱で、完全な実例はなく、答えは古いものです。Python cgiでブラウザのCookieを設定する際の問題
私はPythonでcgiスクリプトを作成しています。スクリプトのログインページでは、テキストボックスと選択メニューをWebページに表示するためにprint "Content-type: text/html\r\n"
があります。ユーザーがsubmitをクリックすると、エラーがある場合にページに何かを印刷する必要がある検証ステップがあります。エラーがなければ、新しいページを読み込んでクッキーを設定するスクリプトが必要です。
#!C:\Python27\python.exe -u
import Cookie
c = Cookie.SimpleCookie()
c['id'] = '12345'
c['score'] = '8.76'
c['page'] = '3'
print "Content-type: text/html %s;\r\n" % (c)
print ""
print c
問題は、次のとおりです:私がチェックしたときに
- は2つだけ上に示した3つのC値のは、「クッキーとして保存されます。ここ
は私が私のクッキーを設定するために使用していたコードです上記のコードを単独で実行した後、Firefoxに「Cookieを表示」します。
- 私は、スクリプトに載っているページの上部に
Content-type: text/html Set-Cookie: score=8.76 Set-Cookie: id=12345 Set-Cookie: page=3 ;
と表示しています。これは、クッキーにprint文を設定し、Content-typeを再度送信したためです。この場合、ブラウザにはクッキーは保存されません。 Cookieは、ヘッダにまだContent-type: text/html
がない場合にのみ格納されます。
Content-type: text/html
の別のコピーをブラウザに印刷せずにスクリプト内からクッキーを設定する方法はありますか?
また、ユーザーがツール内を移動したときにクッキーを無意識に更新する方法も必要です。たとえば、次のページをクリックすると、Cookieは次のページ番号に更新されます。
私はWindows 10でPython 2.7を使用していますが、私のテストブラウザとしてFirefoxを使用しています。