Для использования файлов cookie вы можете использовать любой API для файлов cookie, используемый вашей структурой.
Вот полный рабочий пример CherryPy для того, чтобы делать то, что вы хотите, сохранять результаты поиска и предоставлять их позже.
import cherrypy
import json
class Root(object):
def index(self):
last_search = cherrypy.request.cookie.get('terms', None)
if last_search:
last_search = ','.join(json.loads(last_search.value))
else:
last_search = 'None'
return """
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Search</title>
</head>
<body>
<h1>Search</h1>
<form action="do_search" method="get">
<p>Please type your search terms:
<input type="text" name="query" /></p>
<p>Hint: Last 5 used terms: %s</p>
<p><input type="submit" value="Search →" /></p>
</form>
</body>
""" % (last_search,)
index.exposed = True
def do_search(self, query):
results = ['some', 'results', 'here', 'simulating', 'a', 'search']
print cherrypy.request.cookie
last_search = cherrypy.request.cookie.get('terms', None)
if last_search:
last_search = json.loads(last_search.value)[-4:] # get last 4
else:
last_search = []
last_search.append(query) # append new term
cherrypy.response.cookie['terms'] = json.dumps(last_search)
return """
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Search</title>
</head>
<body>
<h1>Search Results for %r</h1>
<p>%s</p>
<p><a href="%s">click here to search again</a>
</p>
</body>
""" % (query, ', '.join(results), cherrypy.url('/'))
do_search.exposed = True
application = cherrypy.tree.mount(Root(), '/')
if __name__ == '__main__':
cherrypy.quickstart()
ПРИМЕЧАНИЯ:
Он использует json
для сериализации списка и сохранения его в файле cookie в виде строки. Python json
был представлен в python 2.6, поэтому, если он вам нужен до 2.6, то есть, если у вас нет 2.6, вы можете вместо этого использовать simplejson
для запуска примера.
Извините за HTML в коде. В идеале это должно быть за пределами кода, в файле шаблона, с использованием механизма шаблонов, такого как jinja2.