1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>18. How to use cookies with CherryPy</title>
<META NAME="description" CONTENT="18. How to use cookies with CherryPy">
<META NAME="keywords" CONTENT="howto">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="STYLESHEET" href="howto.css" type='text/css'>
<link rel="first" href="howto.html">
<link rel="contents" href="contents.html" title="Contents">
<LINK REL="next" HREF="node20.html">
<LINK REL="previous" HREF="node18.html">
<LINK REL="up" HREF="howto.html">
<LINK REL="next" HREF="node20.html">
<meta name='aesop' content='information'>
</head>
<body>
<DIV CLASS="navigation">
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A HREF="node18.html"><img src="../icons/previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A HREF="howto.html"><img src="../icons/up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
<td><A HREF="node20.html"><img src="../icons/next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy HowTo</td>
<td><A HREF="node1.html"><img src="../icons/contents.gif"
border="0" height="32"
alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" HREF="node18.html">17. How to use</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="howto.html">CherryPy HowTo</A>
<b class="navlabel">Next:</b> <a class="sectref" HREF="node20.html">19. How to use</A>
<br><hr>
</DIV>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></a>
<UL CLASS="ChildLinks">
<LI><A href="node19.html#SECTION0019100000000000000000">18.1 Setting cookies</a>
<LI><A href="node19.html#SECTION0019200000000000000000">18.2 Reading cookies</a>
</ul>
<!--End of Table of Child-Links-->
<HR>
<H1><A NAME="SECTION0019000000000000000000">
18. How to use cookies with CherryPy</A>
</H1>
CherryPy uses the <var>Cookie</var> module from python and in particular the <var>SimpleCookie</var> object type to handle cookies.
More information can be found here: <a class="url" href="http://www.python.org/doc/current/lib/module-Cookie.html">http://www.python.org/doc/current/lib/module-Cookie.html</a>
<P>
<H1><A NAME="SECTION0019100000000000000000">
18.1 Setting cookies</A>
</H1>
In order to send a cookie to a browser, you have to use the global variable <var>response.simpleCookie</var>, which is
a <var>SimpleCookie</var> object.
<P>
The following code shows how to set a cookie in your CherryPy code:
<div class="verbatim"><pre>
CherryClass Root:
view:
def index(self):
response.simpleCookie['cookieName']='cookieValue'
response.simpleCookie['cookieName']['path']='/'
response.simpleCookie['cookieName']['max-age']=3600
response.simpleCookie['cookieName']['version']=1
return "<html><body>Hello, I just sent you a cookie</body></html>"
</pre></div>
<P>
<H1><A NAME="SECTION0019200000000000000000">
18.2 Reading cookies</A>
</H1>
Cookies that are sent by a browser are stored in the global variable <var>response.simpleCookie</var>, which is
a <var>SimpleCookie</var> object.
<P>
The following code shows how to read a cookie in your CherryPy code:
<div class="verbatim"><pre>
CherryClass Root:
mask:
def index(self):
<html><body>
Hi, you sent me <py-eval="len(request.simpleCookie)"> cookies.<br>
Here is a list of cookie names/values:<br>
<py-for="cookieName in request.simpleCookie.keys()">
<py-eval="cookieName+': '+request.simpleCookie[cookieName].value"><br>
</py-for>
</body></html>
</pre></div>
<P>
<DIV CLASS="navigation">
<p><hr>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A HREF="node18.html"><img src="../icons/previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A HREF="howto.html"><img src="../icons/up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
<td><A HREF="node20.html"><img src="../icons/next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy HowTo</td>
<td><A HREF="node1.html"><img src="../icons/contents.gif"
border="0" height="32"
alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
<td><img src="../icons/blank.gif"
border="0" height="32"
alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" HREF="node18.html">17. How to use</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="howto.html">CherryPy HowTo</A>
<b class="navlabel">Next:</b> <a class="sectref" HREF="node20.html">19. How to use</A>
<hr>
<span class="release-info">Release 0.10, documentation updated on 19 March 2004.</span>
</DIV>
<!--End of Navigation Panel-->
<ADDRESS>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</ADDRESS>
</BODY>
</HTML>
|