1

第1部分

我正在编写一个客户端以使用 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())

我可以登录一次,但是当我想以其他用户身份登录时,我必须退出解释器。没有办法在同一个脚本中重新登录吗?

第2部分

我正在使用标准设置运行 Django。

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

在客户端我有_ init _ .py 和 client.py 但是在 client.py 我做:

from mysite import settings

我得到 mysite 模块不存在。我必须创建一个应用程序还是标准 python 导入在 django 中不起作用?

谢谢

4

1 回答 1

0

从客户端,一旦脚本运行并且服务器为您提供经过身份验证的对象(资源),那么只要会话存在,您就可以与它进行交互,除非您调用Logouturl 然后使用其他凭据再次登录。

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

于 2012-04-10T09:44:14.150 回答