gpt4 book ai didi

django - 将 http 请求的副本转发到另一个(测试)环境

转载 作者:行者123 更新时间:2023-12-02 09:01:27 25 4
gpt4 key购买 nike

我希望我的网络应用程序的所有生产数据也能流经我的测试环境。本质上,我想将生产站点的每个 http 请求转发到测试站点(并且还让生产网站为其提供服务!)。

有什么好的方法可以做到这一点?我的网站是用 Django 构建的,并由 mod_wsgi 提供服务。这最好是在应用程序级别 (Django)、Web 服务器级别 (Apache) 还是 mod_wsgi 级别实现?

最佳答案

我设法像这样转发请求

def view(request):
# do what you planned to do here
...

# processing headers
def format_header_name(name):
return "-".join([ x[0].upper()+x[1:] for x in name[5:].lower().split("_") ])
headers = dict([ (format_header_name(k),v) for k,v in request.META.items() if k.startswith("HTTP_") ])
headers["Cookie"] = "; ".join([ k+"="+v for k,v in request.COOKIES.items()])

# this conversion is needed to avoid http://bugs.python.org/issue12398
url = str(request.get_full_path())

# forward the request to SERVER_DOMAIN
conn = httplib.HTTPConnection("SERVER_DOMAIN")
conn.request(
request.method,
url,
request.raw_post_data,
headers
)
response = conn.getresponse()

# some error handling if needed
if response.status != 200:
...

# render web page as usual
return render_to_response(...)

为了代码重用,请考虑装饰器

关于django - 将 http 请求的副本转发到另一个(测试)环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2369145/

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