Python Web开发第七课:如何实现登录功能并进行测试?

2026-05-16 12:591阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计786个文字,预计阅读时间需要4分钟。

Python Web开发第七课:如何实现登录功能并进行测试?

我们实现了服务端、管理员的一些增删改查操作,但尚未实现管理员的登录功能。目前,我们根据API接口文档,实现了管理员登录功能。一、处理登录、登出请求。

前面我们 实现了 服务端 管理员 的一些增删改查操作,但是,我们还没有实现管理员 登录的功能呢。现在我们来根据,API接口文档,实现 管理员登录 功能。

一、处理登录、登出请求

我们可以在mgr目录里面创建一个代码文件 sign_in_out.py这个代码文件就是用来处理 管理员登录和登出 的API 请求的。大家可以思考一下, 我们的代码 该如何处理登录请求呢?无非就把请求参数里面的用户名、密码取出来, 和数据库中记录的用户名密码进行比对。如果和数据库中 记录的一致就认为是认证通过,否则就是不通过。Django中有个内置app 名为 django.contrib.auth ,缺省包含在项目Installed App设置中。这个app 的 models 定义中包含了一张 用户表,名为 auth_user 。当我们执行 migrate 创建数据库表时,根据,就会为我们创建 用户表 auth_user,如下所示:django.contrib.auth 这个app 已经 为我们做好了登录验证功能。我们只需要使用这个app库里面的方法就可以了。Django的文档就给出了登录和登出代码范例,我们稍微修改一下。我们在 mgr 目录下面, 创建一个 sign_in_out.py 文件。在该文件中,输入如下内容:

from django.127.0.0.1:8080/mgr/sign.html

但是这不是 登录 API接口的url路径。根据接口,管理员登录的API 路径是 /api/mgr/signin前面的课程, 我们已经在总路由文件 bysms/urls.py 中 添加了如下路由记录:

# 凡是 url 以 api/mgr 开头的, # 都根据 mgr.urls 里面的 子路由表进行路由 path('api/mgr/', include('mgr.urls')),

现在,我们只需要 在mgr 目录下面 的子路由文件 urls.py 里添加如下内容:

from django.urls import path from mgr import sign_in_out urlpatterns = [ path('signin', sign_in_out.signin), path('signout', sign_in_out.signout), ]

这样就表示:如果有HTTP请求 url是 /api/mgr/signin 就由 sign_in_out.py 里面的signin 函数处理,如果有HTTP请求 url是 /api/mgr/signout 就由 sign_in_out.py 里面的signout 函数处理。

三、测试我们的代码

这样我们后端的登录请求处理的代码已经完成了。那么,怎么测试是否正确呢?

3.1测试登录信息

还是可以 使用 requests库构建 登录请求localhost/api/mgr/signin', data=payload) pprint.pprint(response.json())

运行一下,大家看看,是不是可以返回这样的结果呢?根据接口文档,ret 值为0,表示登录接口调用成功。

3.2测试用户信息

测试代码:

Python Web开发第七课:如何实现登录功能并进行测试?

# @Time : 2022/7/11 20:31 # @Author : 是Dream呀 # @File : test.py import requests,pprint payload = { 'action':'list_customer' } response = requests.get('127.0.0.1:8080/api/mgr/customers', params=payload) pprint.pprint(response.json())

运行结果:

本文共计786个文字,预计阅读时间需要4分钟。

Python Web开发第七课:如何实现登录功能并进行测试?

我们实现了服务端、管理员的一些增删改查操作,但尚未实现管理员的登录功能。目前,我们根据API接口文档,实现了管理员登录功能。一、处理登录、登出请求。

前面我们 实现了 服务端 管理员 的一些增删改查操作,但是,我们还没有实现管理员 登录的功能呢。现在我们来根据,API接口文档,实现 管理员登录 功能。

一、处理登录、登出请求

我们可以在mgr目录里面创建一个代码文件 sign_in_out.py这个代码文件就是用来处理 管理员登录和登出 的API 请求的。大家可以思考一下, 我们的代码 该如何处理登录请求呢?无非就把请求参数里面的用户名、密码取出来, 和数据库中记录的用户名密码进行比对。如果和数据库中 记录的一致就认为是认证通过,否则就是不通过。Django中有个内置app 名为 django.contrib.auth ,缺省包含在项目Installed App设置中。这个app 的 models 定义中包含了一张 用户表,名为 auth_user 。当我们执行 migrate 创建数据库表时,根据,就会为我们创建 用户表 auth_user,如下所示:django.contrib.auth 这个app 已经 为我们做好了登录验证功能。我们只需要使用这个app库里面的方法就可以了。Django的文档就给出了登录和登出代码范例,我们稍微修改一下。我们在 mgr 目录下面, 创建一个 sign_in_out.py 文件。在该文件中,输入如下内容:

from django.127.0.0.1:8080/mgr/sign.html

但是这不是 登录 API接口的url路径。根据接口,管理员登录的API 路径是 /api/mgr/signin前面的课程, 我们已经在总路由文件 bysms/urls.py 中 添加了如下路由记录:

# 凡是 url 以 api/mgr 开头的, # 都根据 mgr.urls 里面的 子路由表进行路由 path('api/mgr/', include('mgr.urls')),

现在,我们只需要 在mgr 目录下面 的子路由文件 urls.py 里添加如下内容:

from django.urls import path from mgr import sign_in_out urlpatterns = [ path('signin', sign_in_out.signin), path('signout', sign_in_out.signout), ]

这样就表示:如果有HTTP请求 url是 /api/mgr/signin 就由 sign_in_out.py 里面的signin 函数处理,如果有HTTP请求 url是 /api/mgr/signout 就由 sign_in_out.py 里面的signout 函数处理。

三、测试我们的代码

这样我们后端的登录请求处理的代码已经完成了。那么,怎么测试是否正确呢?

3.1测试登录信息

还是可以 使用 requests库构建 登录请求localhost/api/mgr/signin', data=payload) pprint.pprint(response.json())

运行一下,大家看看,是不是可以返回这样的结果呢?根据接口文档,ret 值为0,表示登录接口调用成功。

3.2测试用户信息

测试代码:

Python Web开发第七课:如何实现登录功能并进行测试?

# @Time : 2022/7/11 20:31 # @Author : 是Dream呀 # @File : test.py import requests,pprint payload = { 'action':'list_customer' } response = requests.get('127.0.0.1:8080/api/mgr/customers', params=payload) pprint.pprint(response.json())

运行结果: