修改views文件

This commit is contained in:
september 2025-08-13 15:51:34 +08:00
parent b846ee7eb0
commit 847a8cd2ad
1 changed files with 4 additions and 225 deletions

View File

@ -2,228 +2,7 @@ from django.http import JsonResponse
from django.views.decorators.http import require_GET from django.views.decorators.http import require_GET
from django.utils import timezone # 使用 Django 的时区支持 from django.utils import timezone # 使用 Django 的时区支持
import json import json
# 确保导入你的 AsyncTaskDataQuery 类 from chuanglinagBaidu.migrations.BaidutaskQuery import AsyncTaskDataQuery
from chuanglinagBaidu.migrations.BaidutaskQuery import AsyncTaskDataQuery # 替换 your_module 为实际模块名
#
#
# # @require_GET
# def get_task_details(request):
# """获取任务详情的API接口"""
# # 获取任务ID参数
# task_id = request.GET.get('task_id')
# current_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
#
# if not task_id:
# return JsonResponse({
# "code": 400,
# "message": "缺少参数: task_id",
# "time": current_time
# }, status=400)
#
# try:
# # 转换为整数
# task_id = int(task_id)
# except ValueError:
# return JsonResponse({
# "code": 400,
# "message": "task_id 必须是整数",
# "time": current_time
# }, status=400)
#
# # 创建查询实例并获取数据
# task_query = AsyncTaskDataQuery(task_id)
# result = task_query.get_task_details()
# # 获取任务日志并处理JSON嵌套
# task_logs = result.get("task_logs", [])
#
# # 处理可能的嵌套JSON字符串
# for log in task_logs:
# # 处理 task_param
# if isinstance(log.get('task_param'), str):
# try:
# log['task_param'] = json.loads(log['task_param'])
# except json.JSONDecodeError:
# # 可选的日志记录
# # logger.debug(f"无法解析 task_param: {log['task_param']}")
# pass
#
# # 处理 result_data
# if isinstance(log.get('result_data'), str):
# try:
# log['result_data'] = json.loads(log['result_data'])
# except json.JSONDecodeError:
# pass
#
# # 准备响应数据
# response_data = {
# "code": 200,
# "message": "成功",
# "time": timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
# "task_id": task_id,
# "task_logs": task_logs,
# "batch_id": result.get("batch_id"),
# "create_status": result.get("create_status"),
# "total_logs": len(task_logs)
# }
#
# # 返回时禁用ASCII转义
# return JsonResponse(
# response_data,
# json_dumps_params={'ensure_ascii': False}
# )
# from django.http import JsonResponse, HttpResponse
# from django.views.decorators.http import require_GET
# from django.utils import timezone
# from django.shortcuts import render
# import json
# import re
# # 确保导入你的 AsyncTaskDataQuery 类
# from chuanglinagBaidu.migrations.BaidutaskQuery import AsyncTaskDataQuery # 替换为实际模块名
#
#
# def render_json_pretty(data, status=200):
# """渲染美观的JSON HTML视图"""
# # 准备响应数据 - 格式化JSON用于展示
# formatted_json = json.dumps(data, indent=4, ensure_ascii=False)
#
# # 生成HTML内容
# html_content = f"""
#
# """
# return HttpResponse(html_content, status=status, content_type='text/html')
#
#
# @require_GET
# def get_task_details(request):
# """获取任务详情的API接口"""
# # 获取任务ID参数
# task_id = request.GET.get('task_id')
# current_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
# host = request.get_host()
#
# # 参数验证
# if not task_id:
# error_data = {
# "code": 400,
# "message": "缺少参数: task_id",
# "time": current_time,
# "path": request.path,
# "method": request.method,
# "host": host
# }
#
# # 检查是否为浏览器请求
# if 'text/html' in request.META.get('HTTP_ACCEPT', ''):
# return render_json_pretty(error_data, 400)
#
# return JsonResponse(
# error_data,
# status=400,
# json_dumps_params={'ensure_ascii': False}
# )
#
# try:
# # 转换为整数
# task_id = int(task_id)
# except ValueError:
# error_data = {
# "code": 400,
# "message": "task_id 必须是整数",
# "time": current_time,
# "provided_value": task_id,
# "path": request.path,
# "host": host
# }
#
# if 'text/html' in request.META.get('HTTP_ACCEPT', ''):
# return render_json_pretty(error_data, 400)
#
# return JsonResponse(
# error_data,
# status=400,
# json_dumps_params={'ensure_ascii': False}
# )
#
# # 创建查询实例并获取数据
# try:
# task_query = AsyncTaskDataQuery(task_id)
# result = task_query.get_task_details()
#
# # 处理任务日志并解析嵌套JSON
# task_logs = result.get("task_logs", [])
# for log in task_logs:
# # 处理 task_param
# if isinstance(log.get('task_param'), str):
# try:
# log['task_param'] = json.loads(log['task_param'])
# except json.JSONDecodeError:
# # 保留原始字符串并添加解析错误标记
# log['task_param'] = {
# "__parse_error": True,
# "raw_value": log['task_param']
# }
#
# # 处理 result_data
# if isinstance(log.get('result_data'), str):
# try:
# log['result_data'] = json.loads(log['result_data'])
# except json.JSONDecodeError:
# log['result_data'] = {
# "__parse_error": True,
# "raw_value": log['result_data']
# }
#
# # 准备响应数据
# response_data = {
# "code": 200,
# "message": "成功",
# "time": current_time,
# "task_id": task_id,
# "task_logs": task_logs,
# "batch_id": result.get("batch_id"),
# "create_status": result.get("create_status"),
# "total_logs": len(task_logs),
# "api_details": {
# "method": request.method,
# "path": request.path,
# "host": host
# }
# }
#
# # 检查是否为浏览器请求
# if 'text/html' in request.META.get('HTTP_ACCEPT', ''):
# return render_json_pretty(response_data)
#
# # 为JSON响应添加元数据
# response_data['api_details']['rendered_format'] = 'json'
# return JsonResponse(
# response_data,
# json_dumps_params={
# 'ensure_ascii': False,
# 'indent': 2 if 'pretty' in request.GET else None
# }
# )
#
# except Exception as e:
# # 记录异常信息
# error_data = {
# "code": 500,
# "message": "服务器内部错误",
# "error_detail": str(e),
# "time": current_time,
# "task_id": task_id,
# "host": host,
# "path": request.path
# }
#
# if 'text/html' in request.META.get('HTTP_ACCEPT', ''):
# return render_json_pretty(error_data, 500)
#
# return JsonResponse(
# error_data,
# status=500,
# json_dumps_params={'ensure_ascii': False}
# )
from django.http import JsonResponse from django.http import JsonResponse
from django.views.decorators.http import require_GET from django.views.decorators.http import require_GET
from django.utils import timezone from django.utils import timezone
@ -250,7 +29,7 @@ def get_task_details(request):
"method": request.method "method": request.method
} }
if is_browser_request: if is_browser_request:
return render(request, 'json_formatter.html', { return render(request, 'json_formatter3.html', {
"json_data": json.dumps(error_data, ensure_ascii=False), "json_data": json.dumps(error_data, ensure_ascii=False),
"status": 400 "status": 400
}) })
@ -267,7 +46,7 @@ def get_task_details(request):
"provided_value": task_id "provided_value": task_id
} }
if is_browser_request: if is_browser_request:
return render(request, 'json_formatter.html', { return render(request, 'json_formatter3.html', {
"json_data": json.dumps(error_data, ensure_ascii=False), "json_data": json.dumps(error_data, ensure_ascii=False),
"status": 400 "status": 400
}) })
@ -330,7 +109,7 @@ def get_task_details(request):
} }
print(e) print(e)
if is_browser_request: if is_browser_request:
return render(request, 'json_formatter.html', { return render(request, 'json_formatter3.html', {
"json_data": json.dumps(error_data, ensure_ascii=False), "json_data": json.dumps(error_data, ensure_ascii=False),
"status": 500 "status": 500
}) })