From 0e4ce0976690c3a9da51f93d9fead13689a59a79 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 28 Jan 2026 12:26:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20=E5=A2=9E=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=BF=AE=E6=94=B9=E5=8D=95=E4=B8=AA=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ops/urls.py | 3 ++- apps/ops/views.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/ops/urls.py b/apps/ops/urls.py index b5956d0..61d038c 100644 --- a/apps/ops/urls.py +++ b/apps/ops/urls.py @@ -2,7 +2,7 @@ from django.urls import path from apps.ops.views import (DrfRequestLogViewSet, CpuView, MemoryView, DiskView, DbBackupDeleteView, LogView, LogDetailView, DbBackupView, ReloadClientGit, ReloadServerGit, ReloadServerOnly, - BackupDatabase, BackupMedia, TlogViewSet, CeleryInfoView, RedisInfoView) + BackupDatabase, BackupMedia, TlogViewSet, CeleryInfoView, RedisInfoView, CacheView) API_BASE_URL = 'api/ops/' HTML_BASE_URL = 'ops/' @@ -21,6 +21,7 @@ urlpatterns = [ path(API_BASE_URL + 'server/disk/', DiskView.as_view()), path(API_BASE_URL + 'celery/', CeleryInfoView.as_view()), path(API_BASE_URL + 'redis/', RedisInfoView.as_view()), + path(API_BASE_URL + 'cache//', CacheView.as_view()), path(API_BASE_URL + 'request_log/', DrfRequestLogViewSet.as_view({'get': 'list'}), name='requestlog_view'), path(API_BASE_URL + 'tlog/', diff --git a/apps/ops/views.py b/apps/ops/views.py index 629e186..1bf0e20 100644 --- a/apps/ops/views.py +++ b/apps/ops/views.py @@ -19,6 +19,7 @@ from rest_framework.permissions import IsAdminUser from drf_yasg.utils import swagger_auto_schema from apps.ops.service import ServerService, CeleryMonitor, RedisMonitor from server.settings import BACKUP_PATH +from django.core.cache import cache # Create your views here. @@ -229,6 +230,19 @@ class DbBackupView(APIView): return Response(items) +class CacheView(APIView): + permission_classes = [IsAdminUser] + + @swagger_auto_schema(operation_summary="获取value", responses={204: None}) + def get(self, request, key): + return Response(cache.get(key, None)) + + @swagger_auto_schema(operation_summary="修改value", responses={204: None}) + def post(self, request, key): + if "value" in request.data and request.data["value"] is not None: + cache.set(key, request.data.get("value")) + return Response() + class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet): """list:请求日志