2020-10-20DJango

it2023-08-11  71

几种登陆方式

GET方式的登陆post方式的登陆

GET方式的登陆

login.html文件中存在一个form表单:

<form action="/student/login/" method="get"> <p> <label>用户名: </label><input type="text" name="uname"/> </p> <p> <label>&emsp;码: </label><input type="password" name="pwd"/> </p> <p> &emsp;&emsp;&emsp;&emsp;<input type="submit" value="登陆"/> </p> </form> 在action=""中添加一个地址,指向登陆时,form表单提交的地址。 /student/login/就是一个地址。 #在student前面加/表示每次提交只给一次,没有话就是多次 这时,我们还没有student/login/,所以我们需要去根路由/student下,添加一个/login, # stu/urls.py #coding=utf-8 from django.urls import path from . import views urlpatterns = [ path('',views.index_views), path('login/',views.login_views), #子路由的urls下添加一行,且在views.py中添加login_views函数 ] # stu/views.py from django.shortcuts import render from django.http import HttpResponse # 渲染登陆页面 def index_views(request): return render(request,'login.html') def login_views(request): # 接收表单请求参数 uname = request.GET.get('uname','') pwd = request.GET.get('pwd','') # 判断是否成功 if uname=='zhangsan' and pwd == '123': return HttpResponse("登陆成功") return HttpResponse('登陆失败')

post方式的登陆

将html中的form表单的method,get改成post

<form action="/student/login/" method="post"> <p> <label>用户名: </label><input type="text" name="uname"/> </p> <p> <label>&emsp;码: </label><input type="password" name="pwd"/> </p> <p> &emsp;&emsp;&emsp;&emsp;<input type="submit" value="登陆"/> </p> </form>

在views.py中将GET改成POST

# stu/views.py from django.shortcuts import render from django.http import HttpResponse # 渲染登陆页面 def index_views(request): return render(request,'login.html') def login_views(request): # 接收表单请求参数 uname = request.POST.get('uname','') pwd = request.POST.get('pwd','') # 判断是否成功 if uname=='zhangsan' and pwd == '123': return HttpResponse("登陆成功") return HttpResponse('登陆失败') 但是直接使用post方式登陆,页面会报错,解决方法有两个 将settings.py中的 … 这一行注释掉 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', #'django.middleware.csrf.CsrfViewMiddleware', #这一行注释掉 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] 在html中form表单中添加一行: <form action="/student/login/" method="get"> {% csrf_token %} /* 增加这一行 */ <p> <label>用户名: </label><input type="text" name="uname"/> </p> <p> <label>&emsp;码: </label><input type="password" name="pwd"/> </p> <p> &emsp;&emsp;&emsp;&emsp;<input type="submit" value="登陆"/> </p> </form>

就可以以post方式来访问页面了

四种get方式的请求: 在html中,添加a标签,<a href="/student/login/?uname=lisi&pwd=123"> 显示登陆首页 </a>在html加一段js代码: <input type="button" onclick="test()" value="get请求"> <script> function test(){ window.location.href='/student/login?uname=zhangsan&pwd=123'; } </script>

在form表单中method方法使用get方法

浏览器地址栏中,直接输入。

一种post方式: from表单中使用method=‘post’
最新回复(0)