Django框架实现的普通登录案例【使用POST方法】


Posted in Python onMay 15, 2019

本文实例讲述了Django框架实现的普通登录。分享给大家供大家参考,具体如下:

1.显示登录页面

a.设计url,通过浏览器访问http://127.0.0.1:8000//login的时候现实登录页面
b.设计url对应的视图函数
c.编写模板文件login.html

2.登录校验功能

校验数据库中有没有这个用户,这里用模拟的伪校验

新建login.html

在templates文件夹下的booktest文件夹下新建

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
POST:提交的参数在请求头里,数据比较重要用post
GET:提交的参数在url中
用post方法提交到login_check页面中
<form method="post" action="/login_check">
  用户名:<input type="text" name="username">
  密码:<input type="password" name="password">
  <input type="submit" value="登录">
</form>
</body>
</html>

注意这里表单的提交方法选择post方法,action配置如上

配置urls.py

url(r'^login$',views.login),
url(r'^login_check$',views.login_check),

views.py写视图函数login()login_check()

login函数直接现实登录页面,login_check函数用request.POST.get()函数接受浏览器传递过来的参数

def login(request):
  '''显示登录页面'''
  return render(request, 'booktest/login.html')
def login_check(request):
  '''登录校验视图'''
  # 浏览器提交的信息就保存在request里面
  # request.POST保存的是POST提交的参数
  # request.GET保存的是GET提交的参数
  # 1.获取提交的用户名和密码
  username = request.POST.get('username')
  passwoed = request.POST.get('password')
  # 2.进行登录校验
  # 实际开发的时候,用户名和密码保存在数据库中
  # 模拟
  if username == 'zhangyue' and passwoed == '123456':
     # 正确,跳转到首页index
    return redirect('/index')
  else:
     # 错误
    return redirect('/login')
  # 3.返回应答

发生Forbidden (403)错误

Django框架实现的普通登录案例【使用POST方法】

去项目的setting.py里注释掉

'django.middleware.csrf.CsrfViewMiddleware',

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python 从远程服务器下载东西的代码
Feb 10 Python
django模型中的字段和model名显示为中文小技巧分享
Nov 18 Python
Linux下为不同版本python安装第三方库
Aug 31 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
Python冲顶大会 快来答题!
Jan 17 Python
django解决跨域请求的问题详解
Jan 20 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python占用的内存优化教程
Jul 28 Python
Python读取YAML文件过程详解
Dec 30 Python
在python3中实现更新界面
Feb 21 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
Django框架使用mysql视图操作示例
May 15 #Python
scrapy-redis源码分析之发送POST请求详解
May 15 #Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
May 15 #Python
使用Python做定时任务及时了解互联网动态
May 15 #Python
Python使用统计函数绘制简单图形实例代码
May 15 #Python
详解Python3 对象组合zip()和回退方式*zip
May 15 #Python
python语言元素知识点详解
May 15 #Python
You might like
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
popdiv
2006/07/14 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python线程指南详细介绍
2017/01/05 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
法制宣传标语
2014/06/23 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
MySQL分库分表详情
2021/09/25 MySQL
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis