首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过Django实现登录功能

1、当访问 http://localhost:8080/login 的时候,跳转到登录页面

2、登录页面中有登录表单,可以输入用户名和密码,还有一个登录按钮

3、当点击登录按钮的时候,Django进行校验

如果用户名是zhangdapeng,zhangdapeng520,则跳转到登录成功页面

否则不跳转,并在当前页面提示用户名或密码失败

实现成功页面

新增templates/home/success.html,用来渲染成功信息:

<meta charset="UTF-8">

<title>成功</title>

实现登录页面

新增templates/home/login.html,用来渲染登录页面:

<meta charset="UTF-8">

<title>登录</title>

{% csrf_token %}

<div>

<label for="username">用户名</label>

<input id="username" name="username" type="text">

</div>

<div>

<label for="password">密码</label>

<input id="password" name="password" type="password">

</div>

{% if err_msg %}

<p style="color: red">{{ err_msg }}</p>

{% endif %}

<div>

<input type="submit" value="登录">

</div>

这行代码表明,当点击登录按钮的时候,跳转到后端的 /login/ 路由,也就是home中叫做 login/ 的path,使用的请求方法是POST方法。

{% csrf_token %}

这行代码表明,当前登录表单支持防止CSRF跨站请求攻击。这是Django内置的一种用来提高网站安全性能的技术,在每个表单的第一行,都应该加上。

<label for="username">用户名</label>

<input id="username" name="username" type="text">

<label for="password">密码</label>

<input id="password" name="password" type="password">

这几行代码提供了一个用于输入用户名和密码的输入框。

{% if err_msg %}

<p style="color: red">{{ err_msg }}</p>

{% endif %}

这几行代码使用了Django的条件渲染的技术。表示如果后端传过来了err_msg的变量,则将这个变量的内容以红色字体渲染到页面中。

实现成功页面的视图函数

def success(request):

return render(request, "home/success.html")

实现成功页面的路由

path('success/', views.success),

实现登录页面的视图函数

def login(request):

err_msg = ""

if request.method == "POST":

username = request.POST.get("username")

password = request.POST.get("password")

if username == "zhangdapeng" and password == "zhangdapeng520":

return redirect("/success")

err_msg = "用户名或密码错误"

return render(request, "home/login.html", {"err_msg": err_msg})

这几行代码表明,如果是POST请求,则获取用户名和密码进行校验。校验成功在重定向到 /success 成功页面,否则设置错误信息。

如果是其他请求或者校验没有成功,则重新渲染登录页面。

实现登录的路由

path('login/', views.login)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OqrkQ6gsJm7f_HaDSKBWJ4Uw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券