[英]Object as session value in Django
我想使用機械化的實例作為django中的會話變量,因為它具有cookie。 (構建一些Web應用程序以登錄分析網站數據)
browser = mechanize.Browser()
browser.open('https://www.somewebsite.html')
browser.select_form(nr=0)
browser.form['j_username'] = 'test'
browser.form['j_password'] = 'test'
browser.submit() #now browser has cookies in this instance
request.session['browser'] = browser #this doesn't work
所以那沒有用,所以我嘗試使用cookiejar,以便可以將其作為會話變量,但是我猜想它導致了相同的問題,即我試圖將對象作為會話變量...
cj = cookielib.LWPCookieJar()
browser.set_cookiejar(cj)
#some code here
request.session['cj'] = cj #doesn't work again
有什么方法可以做到這一點? 我有點笨:/
Django使用Pickling將對象序列化為會話值。 我的猜測是,機械化Browser
對象尚未實現Pickle序列化協議,因此無法將其轉換為可加載回Python對象的有效字符串。
我認為您最好的選擇可能是從Browser
會話中提取cookie並將其轉換為字符串,將其保存到用戶會話中,然后使用保存的cookie值重新實例化Browser
對象(如果機械化允許的話)。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.