Select fails when cookie tried to get a numeric value
Ned Batchelder
ned at nedbatchelder.com
Sat Oct 5 11:12:42 EDT 2013
On 10/5/13 10:40 AM, Νίκος Αλεξόπουλος wrote:
> Στις 5/10/2013 4:53 μμ, ο/η Ned Batchelder έγραψε:
>
>> From reading the bottom-most frame, you can see that the problem is
>> that "val" is an http.cookies.Morsel object. This means you probably
>> tried to use a cookie object as data in your SQL query, and MySQL
>> doesn't know what to do with that object. You'll have to use a more
>> primitive piece of data in your query.
>
> # initialize cookie
> cookie = cookies.SimpleCookie( os.environ.get('HTTP_COOKIE') )
> cookie.load( cookie )
> cookieID = cookie.get('ID')
>
> # if browser cookie does not exist, set it
> if not cookieID:
> cookie['ID'] = random.randrange(0, 10000)
> cookie['ID']['path'] = '/'
> cookie['ID']['expires'] = 60*60*24*365 #this cookie will
> expire in a month
> cookieID = cookie.get('ID')
> print( cookie )
>
>
> In the above code i try to retrive the cookie form the visitor's
> browser and if it does nto exist i create one.
>
>
>
> For some reason i think CookieID nevers gets inserted itnot the
> database that's why mysql's select statemnt fails.
>
> When i print CookieID i was under the impression i would see a random
> number like '5369' but instead it display the follwong.
>
> Set-Cookie: ID="Set-Cookie: ID=5369"
>
> The mysql filed CookieID is of datatype's int(5) so it cannto store
> this value.
>
> If iam correct and thi is trully the problem then how can i just get
> the random number part out the whole string?
>
> Do you see something wrong?
> Why cookie['ID'] retuned this string back and not just the number?
>
>
Thanks for being patient. Where you have this:
cookieID = cookie.get('ID')
you actually want this:
cookieID = cookie.get('ID').value
--Ned.
More information about the Python-list
mailing list