Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
from django.contrib import messages
Django为匿名用户和经过身份验证的用户提供了对基于cookie和会话的消息传递的完全支持。messages框架允许在一个请求中临时存储消息,并检索它们以在后续请求(通常是下一个请求)中显示。每条消息都有一个确定优先级的特定级别(例如,info、warning或error)。
消息是通过中间件类和相应的上下文处理器实现
1.django.contrib.messages在INSTALLED_APPS中。
2.中间件包含django.contrib.sessions.middleware.SessionMiddleware和django.contrib.messages.middleware.MessageMiddleware,默认存储后端依赖于会话。这就是为什么必须启用SessionMiddleware,并且在中间件中的MessageMiddleware之前。
3.在模板设置中定义的DjangoTemplates的context_processor选项包含django.contrib.messages.context_processors.messages。
from django.contrib import messages
def userlogin(request):
user= User.objects.get(userName=request.POST['username'])
if user.password != request.POST['password']:
messages.error(request, '用户名或密码不正确')
return HttpResponseRedirect(reverse('login'))
else:
messages.info(request, '登录成功')
return HttpResponseRedirect(reverse('index'))
前台代码添加
需在html页面上显示这个消息提示框,代码如下,但必须注意的是如果页面有多个表单的时候,只需要在表单结束后加一次就够了,view底下不同的函数可以显示不同的消息:
<html>
<body>
<div style="padding-top:50px; text-align: center">
<form action="{% url 'userlogin' %}" method="post" name='userlogin'>
{% csrf_token %}
账号: <input type="text" name="username"> <br> <br>
密码: <input type="text" name="password"> <br> <br>
<input type="submit" size='200' value="登 录">
</form>
</div>
{% if messages %}
<script>
{% for msg in messages %}
alert('{{ msg.message }}');
{% endfor %}
</script>
{% endif %}
</body>
往期回顾