我尝试在Django中构建一个网页,其中包含一个迷你“浏览器”,一个用于输入链接的输入栏和一个用于显示网页的iframe,如本网站(http://free-proxyserver.com/)。但是由于不同的原因,例如google,stackoverflow等,很多页面无法在iframe中加载。所以我想在我的服务器上构建一个代理服务器。对于“https://www.google.com”之类的链接,我会将iframe源设置为“http://mywebsite.com/proxy?url=https://www.google.com”,并且“/ proxy”会有一个视图函数。
如果我只是请求此页面并将响应发回,则Web用户将无法获取任何.js或.css文件。有没有一种简单的方法来解决这个问题?
我曾尝试搜索django的开源代理服务器,像“Django Http Proxy”这样的项目只能代理某个网站,但我希望它能成为所有可能网站的代理。
答案 0 :(得分:1)
看一下Django Http Proxy documentation,你会发现:
较早版本的Django HTTP Proxy仅支持单个代理 Django项目,必须使用Django设置进行配置:
PROXY_BASE_URL = 'http://www.python.org/
当然,您可以使用新的基于类的视图语法轻松复制此行为:
from django.conf import settings from httpproxy.views import HttpProxy urlpatterns += patterns('', (r'^proxy/(?P<url>.*)$', HttpProxy.as_view(base_url=settings.PROXY_BASE_URL)), )
因此,我认为您可以轻松修改base_url并从客户端输入中读取它。