首页 > 其他分享 >01用户中心

01用户中心

时间:2024-07-15 14:08:23浏览次数:11  
标签:username 01 中心 登录 request 用户 user 跳转 login

一. 用户中心页面显示

  1. 继承父模板

  2. user子应用 定义视图类,传递参数控制页面显示

  3. 定义urls

  4. 修改模板内页面跳转,反向解析:

二. 登录装饰器和登录后页面跳转

内置认证类校验登录

  1. 在urls.py调用校验方法,路径中使用方法包住函数类

如果没有登录的话会跳转到登录页,后面拼接从那个页面跳转的: xxx/login?next=user/address

  1. settings.py配置 未登录页面
# 配置登录url地址
LOGIN_URL='/user/login'
# 注意: form标签不设置表单action时,提交表单时,会向浏览器地址栏中的地址提交数据

  1. 登录页调整登录后跳转页面
class LoginView(View):
    """登录"""

    def get(self, request):
        """显示登录页面"""
        # 判断是否记住了用户名
        if 'username' in request.COOKIES:
            username = request.COOKIES.get('username')
            checked = 'checked'
        else:
            username = ''
            checked=''
        return render(request, 'login.html',{'username':username,'checked':checked})

    def post(self, request):
        """登录校验"""
        # 1. 接收数据
        username = request.POST.get('username')
        password = request.POST.get('pwd')
        # 2. 校验数据
        if not all([username, password]):
            return render(request, 'login.html', {"errmsg": "数据不完整"})
        # 3. 业务处理:登录校验
        # django内置校验user,有的话返回对象,没有返回None
        user = authenticate(username=username, password=password)
        if user is not None:
            # 用户名或密码正确
            if user.is_active:
                # 用户已激活
                # 记录用户登录状态
                login(request, user)  # 内置认证: 记录登录状态

                # 获取登录后所要跳转的地址,直接访问登录页就不会有next,设置一个默认值:首页
                # 默认跳转到首页
                next_url = request.GET.get('next',reverse('goods:index'))

                # 跳转到next_url
                response = redirect(next_url)  # 先获取返回对象HttpResponseRedirect

                # 判断是否需要记住用户名
                remember = request.POST.get('remember')
                if remember == "on":
                    # 记住用户名
                    response.set_cookie('username', username, max_age=7 * 24 * 3600)
                else:
                    response.delete_cookie('username')

                # 返回response
                return response

            else:
                # 用户未激活
                return render(request, 'login.html', {"errmsg": "账户未激活"})

        else:
            # 用户名或密码错误
            return render(request, 'login.html', {"errmsg": "用户名或密码错误"})

标签:username,01,中心,登录,request,用户,user,跳转,login
From: https://www.cnblogs.com/kh-1314/p/17722809.html

相关文章

  • [b01lers2020]Life on Mars 1
    sql注入,信息搜集打开之后大脑一片空白,不知道入手点在哪,信息什么都查不到,最后抓包抓到了东西发现抓包的时候出现了两个参数,直接在网页上访问一下发现爆装备了,在这里我卡了挺久的,最后是看其他师傅的wp发现这里是sql注入,就是一个最基础的整形注入,确定了之后我们直接上sqlma......
  • [SUCTF 2018]GetShell 1
    自增绕过,文件上传打开是一个白的页面,开始信息收集,可以在前端代码中看到,index.php?act=upload尝试访问之后发现是文件上传发现是直接给了源码的,代码解释:这段PHP代码用于处理一个通过HTML表单上传的文件,并检查该文件的内容是否包含任何黑名单中的字符。下面是逐行解释:if($co......
  • 《昇思25天学习打卡营第06天|qingyun201003》
    日期心得什么是函数式自动微分,在日常的模型训练中,涉及到复杂的数学公式如何转换为机械语言,通过本次的学习,使我了解到了如何去做梯度计算,通过梯度计算,设计损失函数,有一步步优化代码。昇思MindSpore基础入门学习函数式自动微分(AI代码解析)函数式自动微分神经网络的......
  • 【408真题】2011-25
    “接”是针对题目进行必要的分析,比较简略;“化”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。涉及到的知识全部来源于王道各科教材(2025版)(408神功练成中……)文章目录一、接:本题分析二、化:套路总结一、接:本题分析2011-25分析【答】D【解......
  • 【408真题】2011-28
    “接”是针对题目进行必要的分析,比较简略;“化”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。涉及到的知识全部来源于王道各科教材(2025版)(408神功练成中……)文章目录一、接:本题分析二、化:套路总结一、接:本题分析2011-28分析【答】D【解......
  • SP4063 MPIGS - Sell Pigs / P4638 [SHOI2011] 银行家题解
    考虑使用网络流。建立源点\(S\)和汇点\(T\)。每个人作为一个点,将它们与汇点\(T\)连接,权值为需要的猪的数量。然后对于每个人,如果和之前的某个人开了相同的猪圈,那么就将之前的那个人的点与这个人的点连接。如果猪圈还没有被开过,就从源点\(S\)连接这个点,权值为猪圈猪的初......
  • 分别给【测试计划】、【线程组】、【取样器】设置配置元件--用户定义的变量,发送请求,生
    在jmeter中,测试计划、线程组、取样器都可以添加配置元件---用户定义的变量,那么我们在实际发送请求的时候,使用的是哪个变量呢?使用的是取样器定义的变量1.测试计划2.线程组3.取样器发送请求,使用的accounts的值为取样器的apitest21jmeter寻找变量的顺序是:测试计划--->线程......
  • Windows Server 2022 中SQL查询报错:error setting locale info for codepage 65001(取
    解决问题:刚开始我以为是SQLServer升级过程中遇到错误,后面仔细检查错误日志,发现我忽略了一个重要的错误信息“Thecodepage65001isnotsupportedbytheserver.”,codepage65001对应的编码为UTF-8,而数据库排序规则为Chinese_PRC_CI_AS,对应的codepage为936。原来这台SQLSe......
  • FM20S用户手册-PS + PL异构多核案例开发手册
      ......
  • day01
    【一】笔记软件Typora安装和介绍【1】typora介绍Typora是一款非常流行的Markdown编辑器,它能够将Markdown文本转化为漂亮的排版,并且支持实时预览。Typora具有简单易用的界面,使得用户可以轻松地编写和编辑Markdown文本。此外,Typora还支持多种平台,包括Windows、Mac和Linux。【2......