使用Django传递文本进行Python处理并返回response

2024-06-25 23:16:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django的新手,正在努力来回传递数据。我的沙盒现在正在尝试创建一个带有textarea的快速页面来获取输入的JSON,然后基本上通过json.dumps(input, indent=4, separators=(',', ': '))返回输入的输出。所以,返回相同的JSON,但要打印得漂亮。你知道吗

如果我只想返回JSON,这似乎相当简单,但是我想将结果嵌入到另一个HTML页面中。我试过下面的方法,但间隔好像被去掉了。如果在运行python manage.py runserver时使用print命令进行调试,它仍然不会中断行和缩进。你知道吗

def pretty(request):
    form = InputForm(request.POST)
    if form.is_valid():
        output = json.dumps(output, indent=4, separators=(',', ': '))
    else:
        output = "Not valid"

    return render(request, 'printer/pretty.html', {'results': output})

我也尝试过使用自定义过滤器,认为tabs/carries返回应该是results的一部分,但也没有成功。你知道吗

我知道有比使用Django更好的方法,但这是我出于任何原因选择的沙盒项目。我试图理解是否可以使用Django作为一种结构,它基本上是针对自制的Python脚本运行用户输入,并在一个漂亮的仪表板框架内将结果输出到浏览器。你知道吗

上述两种方法都是可能的吗?一种是精确格式化JSON并将其返回给用户,另一种是运行任意Python脚本并返回输出?任何指向我应该考虑的资源或其他想法的建议都将不胜感激。我似乎找不到任何与我想要完成的事情相关的东西,这让我觉得这是一种不寻常的/错误的使用Django的方式。你知道吗


Tags: django方法form沙盒jsonoutputrequestpretty
1条回答
网友
1楼 · 发布于 2024-06-25 23:16:15

我认为这里的问题是HTML如何压缩空白。对我来说,运行json.dumps({'test_array': range(3)}, indent=4, separators=(',', ': '))会生成预期的“漂亮”输出:

{
    "test_array": [
        0,
        1,
        2
    ]
}

如果折叠空白确实是您的问题,您可以通过在Django模板中的results变量周围包装<pre>标记来解决它,如下所示:

<pre>{{ results }}</pre>

相关问题 更多 >