1、修改index文件
/sign/templates/index.html
<html>
<head>
<title>Django Page</title>
</head>
<body>
<h1>发布会管理系统</h1>
<form method="post" action="/login_action/">
<input name="username" type="text" placeholder="账号/用户名"><br>
<input name="password" type="password" placeholder="密码"><br>
{{error}}<br>
<button id="btn" type="submit">登录</button>
{%csrf_token%}
</form>
</body>
</html>
1)POST请求
form表单中添加属性修改为method=”post”
<form method="post">
2)添加token验证
{%csrf_token%}
3)处理登录请求
通过form表单的action属性来指定提交路径
<form method="post" action="/login_action/">
2、urls.py添加路径
打开/guest/urls.py文件,添加/login_action/的路径
urlpatterns = [
......
url(r'^login_action/$', views.login_action),#处理登录请求
......
]
3、修改views.py
创建login_action函数(“login success!”后面可以替换成制定的html页面)
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
......
#登录动作
def login_action(request):
if request.method == 'POST':
username = request.POST.get('username','')
password = request.POST.get('password','')
user = auth.authenticate(username=username,password=password)
if username == 'admin' and password == '12345678':
return HttpResponse(‘login success!’)
else:
return render(request,'index.html',{'error':'username or password error!'})
4、新增登陆成功页
1)创建/templates/event_manage.html
<!DOCTYPE 发布会列表页>
<html lang="zh-CN">
<head>
<title>Evnet Manage Page</title>
</head>
<body>
<h1>Login Success!</h1>
</body>
</html>
5、修改views.py
修改login_action函数,将“login success!”替换成制定的html页面
(导入并使用HttpResponseRedirect方法)
from django.http import HttpResponse,HttpResponseRedirect
from django.shortcuts import render
# Create your views here.
......
#登录动作
def login_action(request):
......
if username == 'admin' and password == '12345678':
response = HttpResponseRedirect('/event_manage/')
新增以下代码
#发布会管理
def event_manage(request):
return render(request,"event_manage.html")
6、urls.py添加路径
打开/guest/urls.py文件,添加/event_manage/的路径
urlpatterns = [
......
url(r'^event_manage/$', views.event_manage),#发布会列表页(登录成功页)
......
]
7、查看登录成功页
通过"账号密码登录"或者直接访问http://127.0.0.1:8000/event_manage/