2014-04-17 2 views
0

django에서 세션 변수로 mechanize 인스턴스를 사용하고 싶습니다.Django에서 세션 값으로 사용할 객체

그래서
 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 

어떻게해야할까요? 나는 조금 우둔하다./

+0

중간 세션을 사용하여 ur 세션 값을 저장합니다. –

+0

request.session [ 'username'] = '안녕하세요'와 같이 세션이 작동합니다. 내 게시물에있는 것처럼 개체를 전달할 수 없습니까? – Peter

+0

https://docs.djangoproject.com/en/dev/topics/http/sessions/ 도움이되지 않는다면이 문서를 보았습니다 :) –

답변

0

장고는 객체를 세션 값으로 직렬화하기 위해 Pickling을 사용한다. 내 생각에 기계화 Browser 개체는 Pickle serialization 프로토콜을 구현하지 않았으므로 파이썬 개체에 다시로드 할 수있는 유효한 문자열로 변환 할 수 없습니다.

아마도 최선의 방법은 Browser 세션에서 쿠키를 추출하여 문자열로 변환하고 사용자 세션에 저장 한 다음 Browser 객체를 저장된 쿠키 값으로 다시 인스턴스화하는 것입니다 (mechanize가 허용하는 경우).). 행운을 빕니다!

+0

예, 잘만되면 : D 나는 시도해 봅니다. 감사 – Peter

관련 문제