实现登陆视图功能

Posted endmoon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现登陆视图功能相关的知识,希望对你有一定的参考价值。

实现登陆视图功能

1.获取表单请求数据

from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import redirect      #导入重定向
# Create your views here.
from app_login.models import User
def index(request):
    return render(request, 'login/index.html')


def login(request):
    if request.method=="POST":   #提交表单后,满足请求为post就执行下面的内容
        username = request.POST.get('username')       #获取表单中输入的用户名和密码
        password = request.POST.get('password')
        print(username,password)            #用于查看输入的信息
        # user = User(username, password)         #添加到User表中
        # user.save()                             #存储到数据库中
        return redirect('/index/')          #重定向url到index
    return render(request,'login/login.html')

#需要注意,由于页面跳转属于跨域请求,安全起见,是不允许了,想要访问协议在form表单中加入{% csrf_token %},以解决该问题

2.账号验证

获取表单数据后
1.判断账号密码是否为空
if username and password:   如果不为空,
    
2.去除输入框中前后的空格(防止误输入)
    username=username.strip()
3.验证账号密码
1)查看数据库中是否存在,不存在就无法登陆,存在就匹配密码学习,匹配成功就登陆,失败就无法登陆
#查询数据库中是否存在该用户名和密码
t_username=User.objects.filter(name=username)       
t_password=User.objects.filter(password=password)
if t_username and t_password:
    return redirect('/index/')
elif not t_username:
    return HttpResponse('用户名不存在')
elif not t_password:
    return HttpResponse('密码不存在')

3.添加警示信息

def login(request):
    message='所有字段都必须填写'
    if request.method=="POST":   #提交表单后,满足请求为post就执行下面的内容
        username = request.POST.get('username')       #获取表单中输入的用户名和密码
        password = request.POST.get('password')
        print(username,password)
        if username and password :    #用户名和密码都不为空
            username=username.strip()  #清除用户名前后的空格
        # user = User(username, password)         #添加到User表中
        # user.save()                             #存储到数据库中
            #查询数据库中是否存在该用户名和密码
            t_username=User.objects.filter(name=username)
            t_password=User.objects.filter(password=password)
            if t_username and t_password:
                return redirect('/index/')
            elif not t_username:
                # return HttpResponse('用户名不存在')
                message='用户名不存在'
            elif not t_password:
                # return HttpResponse('密码不存在')
                message='密码不存在'
    return render(request,'login/login.html',{"message":message})   #将message信息通过模板传递到网页

html页面
<form class='form-login' action="/login/" method="POST">
              {% if message %}      <!--类似if语句-->
                  <div class="alert alert-warning">{{ message }}</div>  <!--使用bootstrap的警示传递message信息-->
              {% endif %}

以上是关于实现登陆视图功能的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用视图模型从另一个片段访问函数

第四节:登陆功能

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML

Vue数据绑定原理及简单实现

Android Java:在 onCreateView() 中返回空视图的片段