qar*_*dso 5 python django json file
我的计算机上有一个文件,我试图从 django 视图中将其作为 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'
Run Code Online (Sandbox Code Playgroud)
我返回的是导航到 URL 时的文件路径
/Users/myself/Developer/us/www/static/files/apple-app-site-association
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
os.path.join返回一个字符串,这就是为什么你在响应的内容中得到一个路径。您需要先读取该路径下的文件。
如果文件是静态的并且在磁盘上,您可以使用网络服务器返回它并完全避免使用 python 和 django。如果文件需要身份验证才能下载,您仍然可以使用 django 处理它,并返回一个X-Sendfile标头(这取决于网络服务器)。
提供静态文件是网络服务器的工作,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'
Run Code Online (Sandbox Code Playgroud)
这受到了如何将文本文件读入 Python 中的字符串变量的启发
见dhke的答案上StreamingHttpResponse。
| 归档时间: |
|
| 查看次数: |
3268 次 |
| 最近记录: |