def messages(request):
if request.method == METH_POST:
# the 302 redirect is processed as an exception, so if this coroutine returns there's a form error
form_errors = await process_form(request)
else:
form_errors = None
# {% if session.is_secure %}
# simple demonstration of sessions by pre-populating username if it's already been set
session = await get_session(request)
username = session.get('username', '')
# {% else %}
# we're not using sessions so there's no way to pre-populate the username
username = ''
# {% endif %}
# {% if template_engine.is_jinja %}
return {
'title': 'Message board',
'form_errors': form_errors,
'username': username,
}
# {% else %}
ctx = dict(
title='Message board',
styles_css_url=request.app['static_root_url'] + '/styles.css',
content="""\
<h2>Add a new message:</h2>
<form method="post" action="{message_url}">
{form_errors}
<p>
<label for="username">Your name:</label>
<input type="text" name="username" id="username" placeholder="Fred Bloggs" value="{username}">
<label for="message">Message:</label>
<input type="text" name="message" id="message" placeholder="hello there">
</p>
<button type="submit">Post Message</button>
</form>
<h2>Messages:</h2>
<div id="messages" data-url="{message_data_url}">
<span class="error">messages not loading, it's possible <code>message_display.js</code> is not being served.</span>
</div>
<script src="{message_display_js_url}"></script>""".format(
message_url=request.app.router['messages'].url(),
message_data_url=request.app.router['message-data'].url(),
message_display_js_url=request.app['static_root_url'] + '/message_display.js',
form_errors=form_errors and '<div class="form-errors">{}</div>'.format(form_errors),
username=username,
)
)
return web.Response(text=BASE_PAGE.format(**ctx), content_type='text/html')
# {% endif %}
评论列表
文章目录