2012-04-10 27 views
1

PART 1动态HTTP重新登录功能和模块进口蟒/ django的

我写一个客户端使用的urllib2,cookielib和的urllib远程登录。以下是代码:

import urllib2 
import urllib 
import cookielib 
from mysite.settings import LOGIN_URL # see Part 2 

login_data = {'username':'user', 'password': 'pass'} 

login_data_encoded = urllib.urlencode(login_data) 
cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
urllib2.install_opener(opener) 
response = opener.open(LOGIN_URL, login_data_encoded) 

此代码正常工作,我可以登录。但我想要重新登录功能。喜欢的东西:

def login(username=None, password=None): 
    login_data = {} 
    login_data['username'] = raw_input('Please provide your username: ') 
    login_data['password'] = raw_input('Please provide your password: ') 
    return login_data 

但是,如果我做的:

login_data_encoded = urllib.urlencode(login()) 

我可以登录一次,但我想登录为不同的用户,我不得不退出解释。没有办法在同一个脚本中重新登录吗?

PART 2

我正在与Django的标准设置。

mysite/ 
    manage.py 
    mysite/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 
     client/ # Folder I created, not an app 

在客户端我有_ 初始化 _的.py和client.py但当client.py我做的:

from mysite import settings 

我得到的mysite模块不存在。我必须创建一个应用程序,还是标准的Python导入不能在Django中工作?

谢谢

+0

这些应该是两个问题。 – 2012-04-10 10:25:04

回答

0

从客户端,一旦运行该脚本时,服务器为您提供的认证对象(资源),那么你可以只要会话存在与它进行交互,除非你叫Logout网址然后使用其他凭据重新登录。

Python导入适用于所有python应用程序。它看起来像在您的目录结构中,您可以尝试导入父目录,将其保留在manage.py的级别,并且导入应该可以工作。或者你的情况,重新调整,以便进口是从同一级调用或使用相对进口。

+0

我了解注销部分,但我无法找出重新启动脚本时重新登录的代码。我已经尝试'从..导入设置',但它给了我'ValueError:试图在非包'相对导入。 – Neeran 2012-04-10 09:54:54