本文使用django实现一个简单的发布会签到管理系统
登录功能
模板页面
sign/templates/index.html
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>发布会管理</h1>
<form action="/login/" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required><br><br>
<button id="btn" type="submit">登录</button>
{% csrf_token %}
</form>
</body>
</html>
备注:
CSRF verification failed. Request aborted.
表格需要加一个 {% csrf_token %} 的标签。csrf 全称是 Cross Site Request Forgery。这是 Django 提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。
再次使用POST请求,可以看到客户端提交带有一个token值
登录视图
from django.http import HttpResponse, Http404
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request,"index.html")
def login(request):
if request.method=='POST':
username=request.POST.get("username",'')
password=request.POST.get("password",'')
if username=='admin' and password=="admin123":
return HttpResponse("登录成功")
else:
return render(request,'index.html',context={'error':'username or password error!'})
向服务器提交请求时,服务器可以通过request获取用户提交值
如获取POST请求中提交的name为username的值
<input type="text" id="username" name="username" required><br><br>
request.POST["username"]
或者 request.POST.get('username','')
获取请求名称:request.method
这里用返回了一个字符串
return HttpResponse("登录成功")