2013-03-03 90 views
0

我見過很多方式來設置,如:Heroku Python:設置和獲取Cookie的正確方法是什麼?

# store in a cookie 
cookie = Cookie.SimpleCookie() 
cookie['lat'] = lat 
cookie['lon'] = lon 
# expires in one hour 
cookie['lat']['expires'] = time.time() + 1 * 24 * 3600 
cookie['lon']['expires'] = time.time() + 1 * 24 * 3600 
print cookie 

和檢查,如:

cookie = Cookie.SimpleCookie() 
cookie.load(os.environ.get('HTTP_COOKIE')) 
lat = float(cookie['lat'].value) 
lon = float(cookie['lon'].value) 

但沒有人似乎在我的本地工作。這是我的代碼或它在本地主機上的功能。我之前沒有做過很多開發w/cookies,也不知道如何正確存儲用戶登錄數據和我的應用程序的數據。

+1

存儲一個用戶地理位置的cookie是一個嚴重的隱私問題!您是否意識到他們的經緯度將通過公共網絡從您的網絡服務器發出的每個頁面請求來回發送?使用密鑰加密數據或將其存儲在服務器上可能會更好。 – 2013-03-07 11:44:25

+0

是的,我知道,但將它存儲在cookie中進行測試更容易和更簡單。 – mitchfuku 2013-03-08 12:55:41

回答

0

想通了一個URL重定向:

from flask import make_response, redirect, url_for 

response = make_response(redirect('/')) 

lat = request.form['lat'] 
lon = request.form['lon'] 
response.set_cookie('lat', lat) 
response.set_cookie('lon', lon) 

return response 

這是如何得到的cookie:

lat = float(request.cookies['lat']) 
lon = float(request.cookies['lon']) 
0

你正在將os.environ與當前請求的環境混淆起來。他們是完全不同的東西。 os環境是你的機器本地的,它與web服務器無關。

對於您正在尋找的環境,您在處理請求時需要位於Web服務器內部。

也許這將幫助:http://en.wikipedia.org/wiki/Http_request#Technical_overview

+0

是的,我對他們是如何工作感到困惑。我想我在回答中回答了我自己的問題。感謝您的文章! – mitchfuku 2013-03-03 21:58:12

相關問題