python3 cookie

最近再次學習python,原本就是一個菜鳥,我按照 Python CGI編程 發現讀cookie 讀取不了,後來發現它這種寫的方式也不怎麼靠譜。javascript

Python中Cookie模塊(python3中爲http.cookies)提供了一個相似字典的特殊對象SimpleCookie,其中存儲並管理着稱爲Morsel的cookie值集合。
每一個Morsel都有name,value以及可選屬性(expires,path,domain,comment,max-age,secure,version,httponly)。
SimpleCookie可以使用output()方法建立以HTTP報頭形式表示的cookie數據輸出,用js_output()方法生成包含javascript代碼的字符串。html

寫cookie:java

import http.cookies
import datetime
import random

expiration = datetime.datetime.now() + datetime.timedelta(days=30)
cookie = http.cookies.SimpleCookie()
cookie["session"] = random.randint(1,1000000000)
cookie["session"]["domain"] = ""
cookie["session"]["path"] = "/"
cookie["session"]["expires"] = expiration.strftime("%a, %d-%b-%Y %H:%M:%S PST")

print("Content-Type:text/html")
#print ("Set-Cookie: name='test';expires=Wed, 28 Aug 2016 18:30:00 GMT")
print(cookie.output())
print()

print("""
<html>
<head><meta charset=gb2312></head>
<body><h1>Cookie Set OK!</h1>
<a href='/cookie_get.py'>get Cookie</a>
</body>
</html>
""")

讀cookie:python

import os
import http.cookies

print("Conten-Type:text/html")
print()
print ("""
<html>
<head>
<meta charset="gb2312">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h1>讀取cookie信息</h1>
""")
if 'HTTP_COOKIE' in os.environ:
    cookie_string=os.environ.get("HTTP_COOKIE")
    print(cookie_string)
    c=http.cookies.SimpleCookie()
    c.load(cookie_string)
    try:
        data=c["session"].value
        print("cookie session:"+data+"<br>")
    except KeyError:
       print ("cookie 沒有設置或者已過去<br>")
print ("""
</body>
</html>
""")
相關文章
相關標籤/搜索