第三章 Django视图(开发登录功能)

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/
![在这里插入图片描述](https://img-blog.csdnimg.cn/6445938779684d848f5bd7c9dd537d9c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSn5Z-O5biC55qE5bCP5Lq654mp,size_20,color_FFFFFF,t_70,g_se,x_16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大城市的小人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值