Я пытаюсь создать очень простой вихревой webapp, который будет запрашивать у пользователя имя пользователя и пароль до того, как загрузится первая (и только) страница. Я использовал пример, изложенный в CherryPy документах здесь: http://cherrypy.readthedocs.org/en/latest/basics.html#authenticationBasic Auth for CherryPy webapp
Вот мой конкретный код для wsgi.py:
import cherrypy
from cherrypy.lib import auth_basic
from myapp import myapp
USERS = {'jon': 'secret'}
def validate_password(username, password):
if username in USERS and USERS[username] == password:
return True
return False
conf = {
'/': {
'tools.auth_basic.on': True,
'tools.auth_basic.realm': 'localhost',
'tools.auth_basic.checkpassword': validate_password
}
}
if __name__ == '__main__':
cherrypy.config.update({
'server.socket_host': '127.0.0.1',
'server.socket_port': 8080,
})
# Run the application using CherryPy's HTTP Web Server
cherrypy.quickstart(myapp(), '/', conf)
Приведенных выше код будет получить мне браузер пользователя/пасс проворной однако при нажатии кнопки ОК приглашение, я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 667, in respond
self.hooks.run('before_handler')
File "/usr/local/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 114, in run
raise exc
TypeError: validate_password() takes exactly 2 arguments (3 given)
я не уверен, где он думает, что это получить, что 3-й аргумент от. Есть предположения? Благодаря!
Прошу простить мое невежество, но что такое «царство»? – fender4645
@ user3693009 Я могу помиловать невежество, но не лень! Первый ответ в google для 'то, что является основной базой auth'; http://stackoverflow.com/questions/12701085/what-is-the-realm-in-basic-authentication –
Извините ... Я вижу в коде сейчас, где он спрашивает о королевстве (и спасибо, я сделал Google это и теперь понимаю). – fender4645