gpt4 book ai didi

python - 如何将 JSON 文件的内容放入响应中

转载 作者:太空狗 更新时间:2023-10-30 02:17:49 25 4
gpt4 key购买 nike

我的计算机上有一个文件,我试图从 Django View 将其作为 JSON 提供。

def serve(request):
file = os.path.join(BASE_DIR, 'static', 'files', 'apple-app-site-association')
response = HttpResponse(content=file)
response['Content-Type'] = 'application/json'

我返回的是导航到 URL 时文件的路径

/Users/myself/Developer/us/www/static/files/apple-app-site-association

我在这里做错了什么?

最佳答案

os.path.join 返回一个字符串,这就是您在响应内容中获取路径的原因。您需要先读取该路径下的文件。

静态文件

如果文件是静态的并且在磁盘上,您可以使用网络服务器返回它并完全避免使用 python 和 django。如果文件需要验证才能下载,您仍然可以使用 django 处理它,并返回 X-Sendfile header。 (这取决于网络服务器)。

提供静态文件是网络服务器的工作,Nginx 和 Apache 非常擅长这方面,而 Python 和 Django 是处理应用程序逻辑的工具。

读取文件的最简单方法

def serve(request):
path = os.path.join(BASE_DIR, 'static', 'files', 'apple-app-site-association')
with open(path , 'r') as myfile:
data=myfile.read()
response = HttpResponse(content=data)
response['Content-Type'] = 'application/json'

这是受 How do I read a text file into a string variable in Python 的启发

更高级的解决方案

参见 dhke's answerStreamingHttpResponse 上。

附加信息

关于python - 如何将 JSON 文件的内容放入响应中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com