阿语python4-2 美多商城v5.0用户中心-用户基本信息之第5.1.2节查询并渲染用户基本信息...

news/2024/5/18 12:02:16 标签: jwt, django, web, java, bbs

查询并渲染用户基本信息

1. 用户模型补充email_active字段

  • 由于在渲染用户基本信息时,需要渲染用户邮箱验证的状态,所以需要给用户模型补充email_active字段

  • 补充完字段后,需要进行迁移。

      $ python manage.py makemigrations
      $ python manage.py migrate
    
class User(AbstractUser):
    """自定义用户模型类"""
    mobile = models.CharField(max_length=11, unique=True, verbose_name='手机号')
    email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')

    class Meta:
        db_table = 'tb_users'
        verbose_name = '用户'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

2. 查询用户基本信息

class UserInfoView(LoginRequiredMixin, View):
    """用户中心"""

    def get(self, request):
        """提供个人信息界面"""
        context = {
            'username': request.user.username,
            'mobile': request.user.mobile,
            'email': request.user.email,
            'email_active': request.user.email_active
        }
        return render(request, 'user_center_info.html', context=context)

3. 渲染用户基本信息

1.将后端模板数据传递到Vue.js

  • 为了方便实现用户添加邮箱时的界面局部刷新

    • 我们将后端提供的用户数据传入到user_center_info.js

<script type="text/javascript">
    let username = "{{ username }}";
    let mobile = "{{ mobile }}";
    let email = "{{ email }}";
    let email_active = "{{ email_active }}";
</script>
<script type="text/javascript" src="{{ static('js/common.js') }}"></script>
<script type="text/javascript" src="{{ static('js/user_center_info.js') }}"></script>
data: {
    username: username,
    mobile: mobile,
    email: email,
    email_active: email_active,
},

2.Vue渲染用户基本信息:user_center_info.html

<div class="info_con clearfix" v-cloak>
    <h3 class="common_title2">基本信息</h3>
    <ul class="user_info_list">
        <li><span>用户名:</span>[[ username ]]</li>
        <li><span>联系方式:</span>[[ mobile ]]</li>
        <li>
            <span>Email:</span>
            <div v-if="set_email">
                <input v-model="email" @blur="check_email" type="email" name="email" class="email">
                <input @click="save_email" type="button" name="" value="保 存">
                <input @click="cancel_email" type="reset" name="" value="取 消">
                <div v-show="error_email" class="error_email_tip">邮箱格式错误</div>
            </div>
            <div v-else>
                <input v-model="email" type="email" name="email" class="email" readonly>
                <div v-if="email_active">
                    已验证
                </div>
                <div v-else>
                    待验证<input @click="save_email" :disabled="send_email_btn_disabled" type="button" :value="send_email_tip">
                </div>
            </div>
        </li>
    </ul>
</div>

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

相关文章

阿语python4-2 美多商城v5.0用户登录-QQ登录之第4.2.5节openid是否绑定用户的处理

1. 判断openid是否绑定过用户使用openid查询该QQ用户是否在美多商城中绑定过用户。try:oauth_user OAuthQQUser.objects.get(openidopenid) except OAuthQQUser.DoesNotExist:# 如果openid没绑定美多商城用户pass else:# 如果openid已绑定美多商城用户pass2. openid已绑定用户…

阿语python4-2 美多商城v5.0用户登录-QQ登录之第4.2.6节openid绑定用户实现

openid绑定用户实现类似于用户注册的业务逻辑当用户输入的手机号对应的用户已存在直接将该已存在用户跟openid绑定当用户输入的手机号对应的用户不存在新建一个用户&#xff0c;并跟openid绑定class QQAuthUserView(View):"""用户扫码登录的回调处理""…

阿语python4-2 美多商城v5.0用户登录-QQ登录之第4.2.3节QQ登录工具QQLoginTool

QQ登录工具QQLoginTool1. QQLoginTool介绍该工具封装了QQ登录时对接QQ互联接口的请求操作。可用于快速实现QQ登录。2. QQLoginTool安装pip install QQLoginTool3. QQLoginTool使用说明1.导入from QQLoginTool.QQtool import OAuthQQ2.初始化OAuthQQ对象oauth OAuthQQ(client_i…

阿语python4-2 美多商城v5.0用户登录-QQ登录之第4.2.2节定义QQ登录模型类

定义QQ登录模型类QQ登录成功后&#xff0c;我们需要将QQ用户和美多商场用户关联到一起&#xff0c;方便下次QQ登录时使用&#xff0c;所以我们选择使用MySQL数据库进行存储。1. 定义模型类基类为了给项目中模型类补充数据创建时间和更新时间两个字段&#xff0c;我们需要定义模…

阿语python4-2 美多商城v5.0用户登录-qq登录之第4.2.1QQ登录开发文档

QQ登录开发文档QQ登录&#xff1a;即我们所说的第三方登录&#xff0c;是指用户可以不在本项目中输入密码&#xff0c;而直接通过第三方的验证&#xff0c;成功登录本项目。1. QQ互联开发者申请步骤若想实现QQ登录&#xff0c;需要成为QQ互联的开发者&#xff0c;审核通过才可实…

阿语python4-2 美多商城v5.0用户中心-添加和验证邮箱之第5.2.3节发送邮箱验证邮件...

发送邮箱验证邮件重要提示&#xff1a;发送邮箱验证邮件是耗时的操作&#xff0c;不能阻塞美多商城的响应&#xff0c;所以需要异步发送邮件。我们继续使用Celery实现异步任务。1. 定义和调用发送邮件异步任务1.定义发送邮件任务celery_app.task(bindTrue, namesend_verify_ema…

阿语python4-2 美多商城v5.0用户中心-添加和验证邮箱之第5.2.1节添加邮箱后端逻辑...

1. 添加邮箱接口设计和定义1.请求方式选项方案请求方法PUT请求地址/emails/2.请求参数参数名类型是否必传说明emailstring是邮箱3.响应结果&#xff1a;JSON字段说明code状态码errmsg错误信息2. 添加邮箱后端逻辑实现class EmailView(View):"""添加邮箱"&q…

阿语python4-2 美多商城v5.0用户中心-收货地址之第5.3.4节修改地址前后端逻辑

1. 修改地址接口设计和定义1.请求方式选项方案请求方法PUT请求地址/addresses/(?P<address_id>\d)/2.请求参数&#xff1a;路径参数 和 JSON参数名类型是否必传说明address_idstring是要修改的地址ID&#xff08;路径参数&#xff09;receiverstring是收货人province_id…