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中的字符串替换操作示例
Jun 27 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
pybind11在Windows下的使用教程
Jul 04 Python
Python实现代码统计工具
Sep 19 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
PDO::setAttribute讲解
2019/01/29 PHP
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python脚本处理空格的方法
2016/08/08 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
校园广播稿500字
2014/02/04 职场文书
技术负责人任命书
2014/06/05 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
如何使JavaScript休眠或等待
2021/04/27 Javascript
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python