python+django开发带auth接口

python+django开发带auth接口

# coding = utf-8
import base64
from django.contrib import auth as django_authfrom django.core.exceptions import ObjectDoesNotExist
from django.http import JsonResponsefrom sign.models import Eventdef user_auth(request):"""用户认证"""# request.META是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户认证、IP地址和用户Agent(通常是浏览器的名称和版本号)等。# HTTP_AUTHORIZATION用于获取HTTP authorization。get_http_auth = request.META.get('HTTP_AUTHORIZATION', b'')# 通过split()方法将其拆分成list列表。拆分后的数据是这样的:['', '']auth = get_http_auth.split()try:# 取出list中的加密串,通过base64对加密串进行解码,得到的数据是元组auth_parts = base64.b64decode(auth[1]).decode('utf-8').partition(':')except IndexError:return 'null'# 取出元组中对应的用户id和密码userid, password = auth_parts[0], auth_parts[2]# 调用django的认证模块,对得到Auth信息进行认证user = django_auth.authenticate(username=userid, password=password)if user is not None and user.is_active:django_auth.login(request, user)return 'success'else:return 'fail'def get_event_list(request):"""示例:查询接口---增加用户认证"""auth_result = user_auth(request)    # 调用认证函数if auth_result == 'null':return JsonResponse({'status': 10011, 'message': 'user auth null'})if auth_result == 'fail':return JsonResponse({'status': 10012, 'message': 'user auth fail'})eid = request.GET.get('eid', '')name = request.GET.get('name', '')if eid == '' and name == '':return JsonResponse({'status': 10021, 'message': 'parameter error'})if eid != '':event = {}try:result = Event.objects.get(id=eid)except ObjectDoesNotExist:return JsonResponse({'status': 10022, 'message': 'query result is empty'})else:event['name'] = result.nameevent['limit'] = result.limitevent['status'] = result.statusevent['address'] = result.addressevent['start_time'] = result.start_timereturn JsonResponse({'status': 200, 'message': 'success', 'data': event})

使用postman运行,结果如下:
不填写auth:
在这里插入图片描述

填写auth:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87677.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RBAC权限模型如何让API访问控制既安全又灵活?

url: /posts/9f01e838545ae8d34016c759ef461423/ title: RBAC权限模型如何让API访问控制既安全又灵活? date: 2025-07-01T04:52:07+08:00 lastmod: 2025-07-01T04:52:07+08:00 author: cmdragon summary: RBAC权限模型通过用户、角色和权限的关联实现访问控制,核心组件包括用…

安达发|告别低效排产:APS高级排程如何助力电池企业智造升级?

在全球能源转型的背景下,动力电池、储能电池等市场需求快速增长,电池制造企业面临着订单波动大、工艺复杂、交期严格等挑战。传统的手工排产或基于ERP的简单计划模式已难以满足高效、精准的生产需求。APS高级排程通过智能算法优化生产计划,实…

数据结构20250620_数据结构考试

试卷01 天津金海通软件笔试题 选择题(4*416) 对于双向循环链表,在p指针所指的结点之后插入s指针所指结点的操作应为 p->nexts; s->prip; p->next->pris; s->nextp->nextp->nexts; p->next->pris; s->prip; s->nextp->nexts->pri …

4. 寻找正序数组的中位数

题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例: 输入:nums1 [1,3], nums2 [2] 输出&#xff1a…

DeepSeek飞机大战小游戏HTML5(附源码)

用DeepSeek帮忙生成的飞机大战小游戏网页版,基于HTML5。 提示词prompt 帮我做一个网页版的飞机大战游戏 html5的游戏功能说明 玩家控制: 使用键盘方向键或WASD移动飞机 空格键发射子弹 移动设备支持触摸控制 游戏机制: 敌机会从屏幕顶部随机位…

全素山药开发指南:从防痒处理到高可用食谱架构

摘要:本文系统性解析山药的化学特性(黏液蛋白/皂苷致痒机制)及全素场景下的烹饪解决方案,提供6种高内聚低耦合的食谱实现,附完整防氧化与黏液控制技术方案。一、核心问题分析:山药处理中的“痛点”致痒物质…

OpenLayers 入门指南:序言

本专栏旨在帮助零GIS基础的开发人员系统掌握OpenLayers这一强大的开源Web地图库,通过 “理论实战” 结合的方式,逐步实现从创建地图到构建一个基础地图应用模版。无论你是前端开发者、GIS爱好者,都可以通过此专栏零基础开始用OpenLayers开发一…

WebRTC轻量学习 libdatachannel

最近想了解一些在浏览器中推送音视频流,寻找很多版本的代码,C、Go、Python等语言实现的webRTC协议。 按照搭建难度和快速实现首选Python版本的WebRTC,这种是最适合原型开发的。 选型:C的开源库libdatachannel Python的开源库Ai…

Vue2中的keep-alive:组件状态缓存与性能优化实战指南

目录 一、什么是keep-alive? 与普通组件切换的对比 二、核心用法详解 1. 基础用法:动态组件缓存 2. 路由视图缓存 3. 生命周期钩子 三、进阶配置与优化 1. 精准控制缓存组件 (1)include/exclude属性 (2&…

FastAPI安全加固:密钥轮换、限流策略与安全头部如何实现三重防护?

url: /posts/f96ba438de34dc197fd2598f91ae133d/ title: FastAPI安全加固:密钥轮换、限流策略与安全头部如何实现三重防护? date: 2025-07-02T22:05:04+08:00 lastmod: 2025-07-02T22:05:04+08:00 author: cmdragon summary: FastAPI框架安全加固方案包括密钥轮换自动化、请…

NeighborGeo:基于邻居的IP地理定位(五)

NeighborGeo:基于neighbors的IP地理定位 X. Wang, D. Zhao, X. Liu, Z. Zhang, T. Zhao, NeighborGeo: IP geolocation based on neighbors, Comput. Netw. 257 (2025) 110896, 5. Case analysis 为了说明NeighborGeo在优化图结构和利用邻居信息进行预测方面的优势,将目标I…

Ethernet IP与Profinet共舞:网关驱动绿色工业的智慧脉动

Ethernet IP与Profinet共舞:驱动绿色工业的智慧脉动 光伏建筑一体化,建筑碳中和,在全球气候变化、国家碳达峰碳中和战略大背景下,敬畏生活、生产与自然和谐共处,确立自身资源循环高效利用的倒计时和路线图。 在全球气…

衡石科技破解指标管理技术难题:语义层建模如何实现业务与技术语言对齐?

在数字化转型的深水区,企业指标管理体系普遍面临一个核心矛盾:业务部门需要敏捷的数据洞察支撑决策,而IT部门却受困于复杂的数据架构和冗长的需求响应周期。这种矛盾的本质,是传统指标管理体系中“技术语言”与“业务语言”的割裂…

正品库拍照PWA应用的实现与性能优化|得物技术

一、 背景与难点 背景 目前得物ERP主要鉴别流程,是通过鉴别师鉴别提需到仓库,仓库库工去进行商品补图拍照,现有正品库59%的人力投入在线下商品借取/归还业务的操作端,目前,线下借取的方式会占用商品资源&#xff0c…

如何使用python识别出文件夹中全是图片合成的的PDF,并将其移动到指定文件夹

引言 在现代数字化工作流程中,无论是为机器学习模型处理数据,还是进行数字归档,区分原生文本 PDF(例如,由文字处理器生成的报告)和基于图像的 PDF(例如,扫描的发票、档案文件&#…

淘系怎么做?

首先,要明确一点就是,补单不是“刷/单”,补单是为了给买家营造一个良好的购物氛围,毕竟再好的产品没有排名、没有权重,买家根本都没有机会看到你的产品,而且只有让淘宝感觉的产品有扶持必要它才会给你对应的…

网安系列【6】之[特殊字符] SQL注入揭秘:从入门到防御实战指南

文章目录一 真实案例二 SQL注入三 为什么危害堪比核弹?四 深入解剖攻击原理🎯 4.1:探测SQL漏洞的存在🎯 4.2:数据库信息探测🎯 4.3:数据库信息探测🎯 4.4:数据库信息进一…

Windows内核并发优化

Windows内核并发优化通过多层次技术手段提升多核环境下的系统性能,以下是关键技术实现方案: 一、内核锁机制优化‌ 精细化锁策略‌ 采用自旋锁(Spinlock)替代信号量处理短临界区,减少线程切换开销 对共享资源实施读…

【数据结构】 排序算法

【数据结构】 排序算法 一、排序1.1 排序是什么?1.2 排序的应用1.3 常见排序算法二、常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.2 选择排序2.2.1 直接选择排序2.2.1.1 方法12.2.1.1 方法22.2.2 堆排序(数组形式)2.3 …

NumPy-核心函数np.matmul()深入解析

NumPy-核心函数np.matmul深入解析 一、矩阵乘法的本质与np.matmul()的设计目标1. 数学定义:从二维到多维的扩展2. 设计目标 二、np.matmul()核心语法与参数解析函数签名核心特性 三、多维场景下的核心运算逻辑1. 二维矩阵乘法:基础用法2. 一维向量与二维…