2013-03-03 88 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

相关问题