gpt4 book ai didi

python - 在 Shopify 应用程序的 Django HttpResponse 对象中设置 Content-Type

转载 作者:IT老高 更新时间:2023-10-28 20:40:59 25 4
gpt4 key购买 nike

我正在使用 Django 开发 Shopify 应用,我将其托管在带有 nginx 和 gunicorn 的 VPS 上。

我正在尝试将 HttpResponse 对象的 Content-Type 更改为 application/liquid,以便可以使用 Shopify 的 application proxy feature ,但它似乎不起作用。

这是我认为与我的代码相关的部分:

from django.shortcuts import render_to_response, render
from django.http import HttpResponse
from django.template import RequestContext
import shopify
from shopify_app.decorators import shop_login_required

def featured(request):
response = HttpResponse()
response['content_type'] = 'application/liquid; charset=utf-8'
response['content'] = '<html>test123</html>'
response['Content-Length'] = len(response.content)
return response

根据Django docs ,我应该设置 response[''content_type] 以便在标题中设置 Content-Type 。不幸的是,当我在views.py中访问与此函数对应的URL时,我得到了200响应,但Content-Type没有改变,Content-Length为0。这是我的响应头:

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 09 Jul 2013 12:26:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
X-Request-Id: 2170c81fb16d18fc9dc056780c6d92fd
content: <html>test123</html>
vary: Cookie
content_type: application/liquid; charset=utf-8
P3P: CP="NOI DSP COR NID ADMa OPTa OUR NOR"

如果我将 response['content_type'] 更改为 response['Content-Type'],我会得到以下标题:

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 09 Jul 2013 12:34:09 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3097
Connection: keep-alive
X-Request-Id: 76e67e04b753294a3c37c5c160b42bcb
vary: Accept-Encoding
status: 200 OK
x-shopid: 2217942
x-request-id: 6e63ef3a27091c73a9e3fdaa03cc28cb
x-ua-compatible: IE=Edge,chrome=1
p3p: CP="NOI DSP COR NID ADMa OPTa OUR NOR"
content-encoding: gzip
P3P: CP="NOI DSP COR NID ADMa OPTa OUR NOR"

关于如何更改响应的 Content-Type 有什么想法吗?这可能是我的 nginx 或 gunicorn 配置的问题吗?

感谢您的帮助!

最佳答案

尝试以下方法:

def featured(request):
content = '<html>test123</html>'

response = HttpResponse(content, content_type='application/liquid')
response['Content-Length'] = len(content)

return response

快速提示,您可以将其添加到 NGINX 配置的 httpserver block 部分,这样您就不必在 View 和其他代码中指定编码Django 代码:

charset utf-8;
charset_types text/css application/json text/plain application/liquid;

关于python - 在 Shopify 应用程序的 Django HttpResponse 对象中设置 Content-Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548414/

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