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的chardet库获得文件编码并修改编码
Jan 22 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
python实现flappy bird游戏
Dec 24 Python
python树莓派红外反射传感器
Jan 21 Python
python实现对输入的密文加密
Mar 20 Python
详解Python:面向对象编程
Apr 10 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
python3爬虫中多线程的优势总结
Nov 24 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 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
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
vue mounted组件的使用
2018/06/18 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
Python下线程之间的共享和释放示例
2015/05/04 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js