IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django 测试平台搭建学习:登录模块 -> 正文阅读

[Python知识库]Django 测试平台搭建学习:登录模块

前言

缺少全栈的练手项目,找了一本书《自动化平台测试开发:python测试开发实战》用来边做边练习,希望能坚持下来。

第二章从抄代码当中结合一些官方文档,加入自己的理解,目前还在编抄遍看的过程。本章主要是关于登录后的重定向到home页面,需要带入$用户名 信息,同时还要支持退出。


目录

前言

一、准备工作

二、相关资料

2.1、登录的相关文档

三、代码实现和注释

3.1 login方法

3.2 退出登录

四、小结


一、准备工作

上一章中作者写了个demo,在urls.py文件中做了path 和views的的方法匹配,而views的 login方法的处理是任意请求后返回到login.html页面。

下面根据页面来分析下要实现的需求和方法拆解:

登陆窗口

二、相关资料

2.1、登录的相关文档

django.contrib.auth | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/4.0/ref/contrib/auth/#django.contrib.auth.models.User使用 Django 的验证系统 | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/4.0/topics/auth/default/Django中的用户认证 | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/4.0/topics/auth/如何使用会话 | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/4.0/topics/http/sessions/

用户登录鉴权方法:

?

三、代码实现和注释

3.1 login方法

在apitest目录下 views.py 页面处理登录逻辑

def login(request):
    if request.POST:
        username = password = ''
        #初始化变量
        username = request.POST.get('username')
        password = request.POST.get('password')
        #从login.html页面获取name为'username'和'password'的值赋值给变量
        user = auth.authenticate(username=username,password=password)
        #使用auth.authenticate获取到user对象,如果user为none则登录失败。
        if user is not None and user.is_active:
            auth.login(request,user)
            #登录操作,login方法的参数里面user为登录成功的对象
            request.session['user'] = username
            #讲登录成功的username变量放入到session字典里面user存起来,方便template页面调用
            response = HttpResponseRedirect('/home')
            #重定向到home页面
            return response
        else:
            return render(request,'login.html',{'error':'username or password error'})
        #登录失败会吧error传递到login.html 的error变量当中
    return render(request,'login.html')
#当前页面为login页面

def home(request):
    return render(request,'home.html')

?将login重定向的home的path;需要在urls里面将/home指向到 /templates/home.html

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/',views.test) ,#关联路径到函数
    path('login/',views.login),
    path('home/',views.home),
    path('logout/',views.logout)
]

home页面源码如下,位置在templates/home.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自动化测试平台</title>
</head>
<body>
</ul>
<ul class="nav navbar-nav navbar-right">
    <li>欢迎您,<a href="#">{{user}}</a></li>
    <li><a href="/logout/">退出</a></li>
</ul>

</body>
</html>

3.2 退出登录

仍然在views.py 里面处理logout逻辑,通过使用auth.logout自带方法,参数重不需要携带验证成功的user对象

def logout(request):
    auth.logout(request)
    return render(request,'login.html')

同样的,处理urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/',views.test) ,#关联路径到函数
    path('login/',views.login),
    path('home/',views.home),
    path('logout/',views.logout)
]

四、小结

当我们访问path路径,例如http://127.0.0.1:8000/login 时候,是先去访问工程目录下的urls,找到/login对应的views.py 的方法,再根据views.py的方法决定页面跳转逻辑。

views.py 定义的方法可以跟html直接调用,例如html页面中通过{{erro}}来传导。而html页面form表单中的username和password,通过name属性直接获取到。

下面以login实现为例,总结下页面关系:

位置作用
/工程目录/应用目录/template/login.html触发方法的接口
/工程目录/工程同名目录/urls.pypath路径和login方法的映射
/工程目录/应用目录/views.pylogin方法的定义
/工程目录/应用目录/template/home.html重定向预跳转的页面

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 13:51:09  更:2022-01-01 13:52:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:47:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码