簡體   English   中英

對象作為Django中的會話值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM