阿语python4-2 美多商城v5.0用户登录-账号登录之第4.1.3节 首页用户名展示

news/2024/5/18 16:39:47 标签: cookie, sms, 3d, html, jwt
htmledit_views">

首页用户名展示

1. 首页用户名展示方案

方案一

  • 模板中 request 变量直接渲染用户名

  • 缺点:不方便做首页静态化

{% if user.is_authenticated %}
    <div class="login_btn fl">
        欢迎您:<em>{{ user.username }}</em>
        <span>|</span>
        <a href="#">退出</a>
    </div>
    {% else %}
    <div class="login_btn fl">
        <a href="login.html">登录</a>
        <span>|</span>
        <a href="register.html">注册</a>
    </div>
{% endif %}

方案二

  • 发送ajax请求获取用户信息

  • 缺点:需要发送网络请求

<div class="login_btn fl">
    {# ajax渲染 #}
</div>

方案三

  • Vue读取html" title=cookie>cookie渲染用户信息

<div v-if="username" class="login_btn fl">
    欢迎您:<em>[[ username ]]</em>
    <span>|</span>
    <a href="#">退出</a>
</div>
<div v-else class="login_btn fl">
    <a href="login.html">登录</a>
    <span>|</span>
    <a href="register.html">注册</a>
</div>

结论:

  • 对比此三个方案,我们在本项目中选择 方案三

实现步骤:

  • 注册或登录后,用户名写入到html" title=cookie>cookie

  • Vue渲染主页用户名

2. 用户名写入到html" title=cookie>cookie

# 响应注册结果
response = redirect(reverse('contents:index'))

# 注册时用户名写入到html" title=cookie>cookie,有效期15天
response.set_html" title=cookie>cookie('username', user.username, max_age=3600 * 24 * 15)

return response
# 响应登录结果
response = redirect(reverse('contents:index'))

# 登录时用户名写入到html" title=cookie>cookie,有效期15天
response.set_html" title=cookie>cookie('username', user.username, max_age=3600 * 24 * 15)

return response

3. Vue渲染首页用户名

1.index.html

<div v-if="username" class="login_btn fl">
    欢迎您:<em>[[ username ]]</em>
    <span>|</span>
    <a href="#">退出</a>
</div>
<div v-else class="login_btn fl">
    <a href="login.html">登录</a>
    <span>|</span>
    <a href="register.html">注册</a>
</div>

2.index.js

mounted(){
    // 获取html" title=cookie>cookie中的用户名
    this.username = getCookie('username');
},

http://www.niftyadmin.cn/n/739778.html

相关文章

阿语python4-2 美多商城v5.0用户登录-账号登录之第4.1.5节判断用户是否登录

判断用户是否登录1. 展示用户中心界面class UserInfoView(View):"""用户中心"""def get(self, request):"""提供个人信息界面"""return render(request, user_center_info.html)需求&#xff1a;当用户登录后&…

阿语python4-2 美多商城v5.0用户登录-账号登录之第4.1.4节退出登录

1. logout()方法介绍退出登录&#xff1a;回顾登录&#xff1a;将通过认证的用户的唯一标识信息&#xff0c;写入到当前session会话中退出登录&#xff1a;正好和登录相反&#xff08;清理session会话信息&#xff09;logout()方法&#xff1a;Django用户认证系统提供了logout(…

阿语python4-2 美多商城v5.0验证码-异步方案RabbitMQ和Celery之第3.3.2节 生产者消费者设计模式...

RabbitMQ介绍和使用1. RabbitMQ介绍消息队列是消息在传输的过程中保存消息的容器。现在主流消息队列有&#xff1a;RabbitMQ、ActiveMQ、Kafka等等。系统吞吐量&#xff1a;RabbitMQ弱于Kafka可靠性和稳定性&#xff1a;RabbitMQ好于Kafka比较设计初衷&#xff1a;Kafka是处理日…

阿语python4-2 美多商城v5.0用户登录-账号登录之第4.1.1节 用户名登录

1. 用户名登录逻辑分析2. 用户名登录接口设计1.请求方式选项方案请求方法POST请求地址/login/2.请求参数&#xff1a;表单参数名类型是否必传说明usernamestring是用户名passwordstring是密码rememberedstring是是否记住用户3.响应结果&#xff1a;HTML字段说明登录失败响应错误…

阿语python4-2 美多商城v5.0验证码-异步方案RabbitMQ和Celery之第3.3.3节 Celery介绍和使用...

Celery介绍和使用思考&#xff1a;消费者取到消息之后&#xff0c;要消费掉&#xff08;执行任务&#xff09;&#xff0c;需要我们去实现。任务可能出现高并发的情况&#xff0c;需要补充多任务的方式执行。耗时任务很多种&#xff0c;每种耗时任务编写的生产者和消费者代码有…

阿语python4-2 美多商城v5.0验证码-异步方案RabbitMQ和Celery之第3.3.1节 生产者消费者设计模式...

从今天开始阿语将更新美多商场实战笔记&#xff0c;也就说从今天开始&#xff0c;下面的全部都是实战&#xff0c;喜欢的可以关注一下&#xff0c;一起学习python&#xff0c;有的笔记比较短就一篇文章发了2节笔记&#xff0c;一定要认真看生产者消费者设计模式思考&#xff1a…

阿语python4-2 美多商城v5.0用户登录-账号登录之第4.1.2节 多账号登录

多账号登录Django自带的用户认证后端默认是使用用户名实现用户认证的。用户认证后端位置&#xff1a;django.contrib.auth.backends.ModelBackend。如果想实现用户名和手机号都可以认证用户&#xff0c;就需要自定义用户认证后端。自定义用户认证后端步骤在users应用中新建util…

阿语python4-2 美多商城v5.0用户中心-用户基本信息之第5.1.1节用户基本信息逻辑分析...

用户基本信息逻辑分析1. 用户基本信息逻辑分析以下是要实现的后端逻辑用户模型补充email_active字段查询并渲染用户基本信息添加邮箱发送邮箱验证邮件验证邮箱提示&#xff1a;用户添加邮箱时&#xff0c;界面的局部刷新&#xff0c;我们选择使用Vue.js来实现。