本文整理汇总了Python中pyramid_simpleform.Form.data['failed']方法的典型用法代码示例。如果您正苦于以下问题:Python Form.data['failed']方法的具体用法?Python Form.data['failed']怎么用?Python Form.data['failed']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyramid_simpleform.Form
的用法示例。
在下文中一共展示了Form.data['failed']方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: login_view
# 需要导入模块: from pyramid_simpleform import Form [as 别名]
# 或者: from pyramid_simpleform.Form import data['failed'] [as 别名]
def login_view(request):
"""Render login form. If posted a ``username`` and ``password``, attempt to
authenticate the user using the credentials provided. If authentication
if successful, redirect the user whence they came.
"""
next = request.params.get('next') or request.route_url('index')
defaults = {
'failed': False,
'next': next
}
form = Form(request, schema=schema.Login, defaults=defaults)
if request.method == 'POST':
if form.validate():
credentials = {
'username': form.data['username'],
'password': form.data['password']
}
user = model.User.authenticate(**credentials)
if user:
headers = remember(request, user.canonical_id)
return HTTPFound(location=next, headers=headers)
form.data['failed'] = True
return {'renderer': FormRenderer(form)}
示例2: login
# 需要导入模块: from pyramid_simpleform import Form [as 别名]
# 或者: from pyramid_simpleform.Form import data['failed'] [as 别名]
def login(request):
"""Render login form. If posted a ``username`` and ``password``, attempt
to authenticate the user using the credentials provided. If
authentication if successful, redirect the user whence they came.
Setup::
>>> from mock import Mock, MagicMock
>>> from pyramid.testing import DummyRequest
>>> from pyramid import security
>>> from pyramid_simpleauth import model, view
>>> _authenticate = model.authenticate
>>> model.authenticate = Mock()
If it's not a POST, renders the form::
>>> dummy_request = DummyRequest()
>>> dummy_request.registry.settings = {}
>>> return_value = login(dummy_request)
>>> return_value['renderer'].data
{'failed': False}
Otherwise validates the request::
>>> dummy_request = DummyRequest(post={'foo': 'bar'})
>>> dummy_request.registry.settings = {}
>>> return_value = login(dummy_request)
>>> return_value['renderer'].data['failed']
True
Otherwise tries to authenticate the credentials::
>>> model.authenticate.return_value = None
>>> valid_post = {
... 'username': 'thruflo',
... 'password': 'password'
... }
>>> dummy_request = DummyRequest(post=valid_post)
>>> dummy_request.registry.settings = {}
>>> return_value = login(dummy_request)
>>> model.authenticate.assert_called_with('thruflo', 'password')
If they don't match::
>>> return_value['renderer'].data['failed']
True
If they do, redirects with the user's canonical id remembered::
>>> mock_user = Mock()
>>> mock_user.canonical_id = 'abc'
>>> model.authenticate.return_value = mock_user
>>> dummy_request = DummyRequest(post=valid_post)
>>> dummy_request.registry.settings = {}
>>> return_value = login(dummy_request)
>>> isinstance(return_value, HTTPFound)
True
>>> return_value.location
'/'
Redirecting to ``next`` if provided::
>>> data = {
... 'username': 'thruflo',
... 'password': 'password',
... 'next': '/foo/bar'
... }
>>> dummy_request = DummyRequest(post=data)
>>> dummy_request.registry.settings = {}
>>> return_value = login(dummy_request)
>>> return_value.location
'/foo/bar'
n.b.: If ``next`` is invalid, it defaults to '/' rather than failing::
>>> data['next'] = '$do.evil(h4x);'
>>> dummy_request = DummyRequest(post=data)
>>> return_value = login(dummy_request)
>>> return_value.location
'/'
Teardown::
>>> model.authenticate = _authenticate
"""
next_ = validate_next_param(request)
# Validate the rest of the user input.
form = Form(request, schema=schema.Login, defaults={'failed': False})
if request.method == 'POST':
if form.validate():
d = form.data
user = model.authenticate(d['username'], d['password'])
if user:
# Remember the logged in user.
headers = remember(request, user.canonical_id)
# Work out where to redirect to next.
location = get_redirect_location(request, user,
route_name='index', view_name=None)
#.........这里部分代码省略.........
示例3: signup_view
# 需要导入模块: from pyramid_simpleform import Form [as 别名]
# 或者: from pyramid_simpleform.Form import data['failed'] [as 别名]
def signup_view(request):
"""Render and handle signup form.
Setup::
>>> from mock import Mock
>>> from pyramid.testing import DummyRequest
>>> from pyramid_simpleauth import model, view
>>> _get_existing_email = model.get_existing_email
>>> _get_existing_user = model.get_existing_user
>>> _save = model.save
>>> _remember = view.remember
>>> view.remember = Mock()
>>> model.save = Mock()
>>> model.get_existing_user = Mock()
>>> model.get_existing_user.return_value = None
>>> model.get_existing_email = Mock()
>>> model.get_existing_email.return_value = None
If it's not a POST, renders the form::
>>> dummy_request = DummyRequest()
>>> return_value = signup_view(dummy_request)
>>> return_value['renderer'].data
{'failed': False}
Otherwise it validates the request data against ``schema.Signup``::
>>> dummy_request = DummyRequest(post={'foo': 'bar'})
>>> return_value = signup_view(dummy_request)
>>> return_value['renderer'].data
{'failed': True, 'foo': 'bar'}
If provided with valid data, it saves a ``User`` with related ``Email``,
logs them in by calling ``remember`` and redirects to the user's
profile::
>>> valid_post = {
... 'username': 'thruflo',
... 'email': '[email protected]',
... 'password': 'password',
... 'confirm': 'password'
... }
>>> dummy_request = DummyRequest(post=valid_post)
>>> dummy_request.registry.settings = {}
>>> dummy_request.route_url = Mock()
>>> return_value = signup_view(dummy_request)
>>> model.save.called
True
>>> view.remember.called
True
>>> isinstance(return_value, HTTPFound)
True
Teardown::
>>> view.remember = _remember
>>> model.save = _save
>>> model.get_existing_user = _get_existing_user
>>> model.get_existing_email = _get_existing_email
"""
form = Form(request, schema=schema.Signup, defaults={'failed': False})
if request.method == 'POST':
if form.validate():
d = form.data
# Determine whether to skip confirmation.
s = request.registry.settings
should_skip_confirmation = s.get('auth.skip_confirmation', False)
# Instantiate the email instance.
email = model.Email()
email.address = d['email']
email.is_confirmed = should_skip_confirmation
# Instantiate the user instance.
user = model.User()
user.username = d['username']
user.password = model.encrypt(d['password'])
user.emails = [email]
# Save the user and email to the db.
model.save(user)
# Log the user in.
remember(request, user.canonical_id)
# Fire a ``UserSignedUp`` event.
request.registry.notify(events.UserSignedUp(request, user))
# Redirect to the user's profile url.
settings = request.registry.settings
route_name = settings.get('simpleauth.after_signup_route', 'users')
try:
location = request.route_url(route_name,
traverse=(user.username,))
except (KeyError, ComponentLookupError):
location = '/'
return HTTPFound(location=location)
form.data['failed'] = True
return {'renderer': FormRenderer(form)}