前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-26-messages

Django源码学习-26-messages

作者头像
小团子
发布2019-08-26 16:06:18
8540
发布2019-08-26 16:06:18
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-25-ContentType

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

代码语言:javascript
复制
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。

代码语言:javascript
复制
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底下不同的函数可以显示不同的消息:

代码语言:javascript
复制
<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>

往期回顾

Django messages 消息(上)

Django messages 消息(中)

Django messages 消息(下)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档