feat: base 增加获取修改单个缓存的接口

This commit is contained in:
caoqianming 2026-01-28 12:26:53 +08:00
parent 90a54d2279
commit 0e4ce09766
2 changed files with 16 additions and 1 deletions

View File

@ -2,7 +2,7 @@ from django.urls import path
from apps.ops.views import (DrfRequestLogViewSet, CpuView, MemoryView, DiskView, DbBackupDeleteView, from apps.ops.views import (DrfRequestLogViewSet, CpuView, MemoryView, DiskView, DbBackupDeleteView,
LogView, LogDetailView, LogView, LogDetailView,
DbBackupView, ReloadClientGit, ReloadServerGit, ReloadServerOnly, DbBackupView, ReloadClientGit, ReloadServerGit, ReloadServerOnly,
BackupDatabase, BackupMedia, TlogViewSet, CeleryInfoView, RedisInfoView) BackupDatabase, BackupMedia, TlogViewSet, CeleryInfoView, RedisInfoView, CacheView)
API_BASE_URL = 'api/ops/' API_BASE_URL = 'api/ops/'
HTML_BASE_URL = 'ops/' HTML_BASE_URL = 'ops/'
@ -21,6 +21,7 @@ urlpatterns = [
path(API_BASE_URL + 'server/disk/', DiskView.as_view()), path(API_BASE_URL + 'server/disk/', DiskView.as_view()),
path(API_BASE_URL + 'celery/', CeleryInfoView.as_view()), path(API_BASE_URL + 'celery/', CeleryInfoView.as_view()),
path(API_BASE_URL + 'redis/', RedisInfoView.as_view()), path(API_BASE_URL + 'redis/', RedisInfoView.as_view()),
path(API_BASE_URL + 'cache/<str:key>/', CacheView.as_view()),
path(API_BASE_URL + 'request_log/', path(API_BASE_URL + 'request_log/',
DrfRequestLogViewSet.as_view({'get': 'list'}), name='requestlog_view'), DrfRequestLogViewSet.as_view({'get': 'list'}), name='requestlog_view'),
path(API_BASE_URL + 'tlog/', path(API_BASE_URL + 'tlog/',

View File

@ -19,6 +19,7 @@ from rest_framework.permissions import IsAdminUser
from drf_yasg.utils import swagger_auto_schema from drf_yasg.utils import swagger_auto_schema
from apps.ops.service import ServerService, CeleryMonitor, RedisMonitor from apps.ops.service import ServerService, CeleryMonitor, RedisMonitor
from server.settings import BACKUP_PATH from server.settings import BACKUP_PATH
from django.core.cache import cache
# Create your views here. # Create your views here.
@ -229,6 +230,19 @@ class DbBackupView(APIView):
return Response(items) 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): class DrfRequestLogViewSet(ListModelMixin, CustomGenericViewSet):
"""list:请求日志 """list:请求日志