python django简单的登陆实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python django简单的登陆实现相关的知识,希望对你有一定的参考价值。



实现方法:

1,可以先定义一个基础的页面访问路径 例如:http://127.0.0.1:8000/index/  定义index路径

在urls

1 urlpatterns = [
2    
3     url(r^index/$, views.index),
4    
5 ]

 

2,同时也需要创造一个index.html页面

 

<html xmlns="http://www.w3.org/1999/html">
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>

    <title>登陆页面</title>
</head>
<body>
<form method="post" action="/login_action/">                                   <!--创造一个表单,用于数据提交,并且使用post方式提交表单,同时定义为login_action(登陆)过程-->
    <input  name="username" type="text" placeholder="用户名"><br>         <!--input标签定义文本框,数据类型-->
    <input  name="password" type="password" placeholder="密码"><br>
    {{error}}<br>                                    <!--这里的双大括号可以用于显示函数所指定的内容-->
    <button id="btn" type="submit">登陆</button>
    {% csrf_token %}                                                     <!--为了防止csrf攻击-->

</form> </body> </html>

 

 3,需要一个将url和html连接起来的函数

定义views.py

 1 from django.shortcuts import render
 2 from django.http import HttpResponse
 3 from django.http import HttpResponseRedirect                                #这三个模块为常用模块
 4 # Create your views here.
 5 
 6 def index(request):
 7     return render(request, index.html)
 8 def login_action(request):
 9     if request.method == POST:                                            #判断是否为post提交方式
10         username = request.POST.get(username, ‘‘)                         #通过post.get()方法获取输入的用户名及密码
11         password =request.POST.get(password, ‘‘)
12 
13         if username == admin and password == 123:                 #判断用户名及密码是否正确
14             return HttpResponseRedirect(/event_manage/)                #如果正确,(这里调用另一个函数,实现登陆成功页面独立,使用HttpResponseRedirect()方法实现
15         else:
16             return render(request,index.html,{error:username or password eror})#不正确,通过render(request,"index.html")方法在error标签处显示错误提示
17 
18 def event_manage(request):                                                            #该函数定义的是成功页面的提示页面
19 
20     #username =request.COOKIES.get(‘user‘, ‘‘) #读取浏览器cookie
21     return render(request,"event_manage.html") #{"user":username})              #在上面的函数判断用户名密码正确后在显示该页面,指定到event_manage.html,切换到一个新的html页面

 

 使用到的方法包括

render()

POST.get()

HttpResponseRedirect()

HttpResponse()

熟悉它们的使用

 

  login_action()函数,对应index.html中定义的表单的提交过程,我们在这个过程中提交数据并且判断数据,

     event_manage()函数用于打开新的html页面

 

5,创造成功页面event_manage.HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>成功</title>
</head>
<body>
    <h1>你好,入侵者</h1>

</body>
</html>

 

 

在views.py 中定义的函数都应该在urls.py 中定义路径路径名称可以自定,但要与函数名称对应,这里为了与相应的功能对应

6,定义上面的两个函数的路径

urlpatterns = [
   
    url(r^index/$, views.index),
    url(r^login_action/$, views.login_action),   #登陆过程
    url(r^event_manage/$, views.event_manage),   #成功的页面

]

 

 

总结一下这整个流程

首先,我们通过http://127.0.0.1:8000/index/访问基础登陆页面    

输入用户名密码,点击提交按钮,这一过程(login_action)调用login_action()函数{并且跳转到http://127.0.0.1:8000/login_action/}——————进行判断----------正确---------立马跳转到http://127.0.0.1:8000/event_manage/  ,并且显示event_manage.html.

 

 

整个实现过程

首先创造一个路径,相应的html页面

然后通过一个函数将他们捆绑到一起

实现表单内容提交的过程再定义一个函数用于处理数据,又定义一个函数,用于指定跳转到其它 的页面

 

总之,在views.py 中定义的是处理html中各种数据处理,数据判断,页面的跳转

同时定义的这些函数都是各个过程方法的链接,也应该在urls.py中创造这些路径

 

技术分享

 

以上是关于python django简单的登陆实现的主要内容,如果未能解决你的问题,请参考以下文章

python django学习一:简单注册/登陆/session

python实现简单登陆代码

Django实现网站登陆的功能

django-sso单点登陆的实现

Django 之 Session的简单使用

python项目_后端自定义认证,实现多条件登陆