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
英文地址,請注明出處:http://en.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. 一維向量與二維…