实现方法:

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

在urls

 urlpatterns = [

     url(r'^index/$', views.index),

 ]

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

 from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect #这三个模块为常用模块
# Create your views here. def index(request):
return render(request, 'index.html')
def login_action(request):
if request.method == 'POST': #判断是否为post提交方式
username = request.POST.get('username', '') #通过post.get()方法获取输入的用户名及密码
password =request.POST.get('password', '') if username == 'admin' and password == '':          #判断用户名及密码是否正确
return HttpResponseRedirect('/event_manage/')      #如果正确,(这里调用另一个函数,实现登陆成功页面独立,使用HttpResponseRedirect()方法实现
else:
return render(request,'index.html',{'error':'username or password eror'})#不正确,通过render(request,"index.html")方法在error标签处显示错误提示 def event_manage(request): #该函数定义的是成功页面的提示页面 #username =request.COOKIES.get('user', '') #读取浏览器cookie
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简单的登陆实现的更多相关文章

  1. Redis & Python/Django 简单用户登陆

    一.Redis key相关操作: 1.del key [key..] 删除一个或多个key,如果不存在则忽略 2.keys pattern keys模式匹配,符合glob风格通配符,glob风格的通配 ...

  2. python实现简单的登陆认证(含简单的文件操作)

    需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(本 ...

  3. Python - Django - 简单分页的实现

    models.py: from django.db import models class Book(models.Model): title = models.CharField(max_lengt ...

  4. python django简单操作

    准备: pip3 install  django==1.10.3 cmd django-admin startproject  guest  创建一个guest的项目 cd guest manage. ...

  5. python django 简单接口测试页面

    项目创建订单只能是接口创建的,之前都是用jar包放到jmeter里调用下单,给产品或者运维用不太方便,就想用django写一个带前端界面的下单web程序 项目结构 代码,比较渣 # coding=ut ...

  6. Python实现简单登陆验证(文件操作)

    利用python编写一个简单的登陆验证 代码主要功能: 利用Python实现简单的登陆验证,代码主要有两个部分组成: 第一部分:登陆页面,作用是实现用户名和密码的输入 利用两个输入函数input()来 ...

  7. python Django 学习笔记(二)—— 一个简单的网页

    1,创建一个django项目 使用django-admin.py startproject MyDjangoSite 参考这里 2,建立视图 from django.http import HttpR ...

  8. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  9. python编写简单的html登陆页面(4)

    python编写简单的html登陆页面(4)   1  在python编写简单的html登陆页面(2)的基础上在延伸一下: 可以将动态态分配数据,建立表格,存放学生信息 2 实现的效果如下: 3  动 ...

随机推荐

  1. [daily] 在CentOS7中使用 sanitizer-address 发现内存问题 / CentOS7使用SCLo软件源安装devtoolset软件

    接前文: [daily] 内存越界的分析与定位 如前文提及, 使用sanitizer-address 可以有效的检查程序的内存问题. 当时在CentOS7中,虽然也可以使用,但是却遇到如下两个问题: ...

  2. [development][dpdk] dpdk-pmdinfo 工具的使用

    发现了一个工具 dpdk-pmdinfo 但是文档介绍的很不清楚, http://dpdk.org/doc/guides/tools/pmdinfo.html 经过摸索, 这可能就是一个查询 dpdk ...

  3. idea+maven+springboot+mybatis+springmvc+shiro

    springboot就是把创建项目简单化,省去了以往的配置mybatis.springmvc的繁琐过程. 搭建web应用三个主要功能,请求和响应,数据库交互,权限配置. 一.idea创建项目 (1) ...

  4. 洛谷P3246 序列 [HNOI2016] 莫队/线段树+扫描线

    正解:莫队/线段树+扫描线 解题报告: 传送门! 似乎是有两种方法的,,,所以分别港下好了QAQ 第一种,莫队 看到这种询问很多区间之类的就会自然而然地想到莫队趴?然后仔细思考一下,发现复杂度似乎是欧 ...

  5. mvn install package区别

    package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用

  6. 坦克大战java版

    吃了可以加血的血块类 import java.awt.*; public class Blood { //血块移动的路径 int[][] pos = { {450,250},{450,252},{45 ...

  7. 前端 HTML body标签相关内容 常用标签 表格标签 table

    表格标签 table 表格由<table> 标签来定义.每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由<td>标签定义).字母 td 指表 ...

  8. 20180328 Redis和MSMQ

    以前接触的页面记录多为session或者传递的方式短暂记忆.今天接触了一个Redis作为缓存的想法,在之前我也是用过Redis ,但是只是作为异步任务系统记录是否执行成功使用,目前看来用Redis也可 ...

  9. 如何在ASP.NET 网站项目中使用C# 6?

    作者:Generic链接:https://www.zhihu.com/question/48864375/answer/113316462来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  10. CSS3-Hover 效果 展示

    首先说说兼容性的问题吧,主要说说IE浏览器的兼容性.IE10+. 效果展示的css代码: .button { margin: .4em; padding: 1em; cursor: pointer; ...