python - 当出现[Errno 111]连接被拒绝时如何使用Python代理服务器

标签 python django proxy odoo odoo-10

我尝试测试Odoo Web Service API从 Python 开始,使用基本的 Django 应用程序和 xmlrpclib 从 localhost 一切正常。但是当我 host it在 pythonanywhere 我收到一个 [Errno 111] 连接被拒绝 错误:

enter image description here

在他们的帮助页面上they describe免费帐户的端口已关闭,并且必须使用位于 proxy.server:3128 的 HTTP 代理。如何做到这一点?

实际上,一旦将 .odoo.com 添加到其 whitelist 中,它就应该在没有代理的情况下工作。 ,但是代理问题对我来说也很有趣,因为我还想知道如何在不同的主机上运行这个应用程序。

这是我的 View 的 Django 代码(是的,我知道将 html 放入 View 中是不好的做法,只是为了测试):

from django.http import HttpResponse
import xmlrpclib

url = "https://demo3.odoo.com"
db = "demo_100_1489044950"
username = "admin"
password = "admin"

#odoo service connection
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
uid = common.authenticate(db, username, password, {})
models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
products = models.execute_kw(db, uid, password,
    'product.template', 'search_read',
    [[]],
    {'fields': ['name', 'list_price'], 'limit': 10})

for product in products:
    print product['id'], product['name'], product['list_price']

def index(request):
    html = "<html><body><h1>Odoo Products</h1>"
    for product in products:
        name = product['name'].encode("utf-8", "strict")
        html += "<div>"+name+": "+str(product['list_price'])+"</div>"
    html += "</body></html>"
    return HttpResponse(html)

ps:Django应用程序的源代码在 this github repository

最佳答案

This blog post解释了如何创建代理感知的 xmlrpclib.ServerProxy 子类,它应该可以正常工作。 (警告:它对我来说看起来完全正确,但我自己还没有尝试过。)

关于python - 当出现[Errno 111]连接被拒绝时如何使用Python代理服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42692435/

相关文章:

python - 如何使用 pysftp 仅从远程目录同步更改的文件?

python - 当我的文件相互导入时,导入不起作用

python - 为 django-rest-framework + Angular-route + 静态文件设置 urls.py 的正确方法是什么?

python - 有没有使用 fabric 将 django 站点置于维护模式?

python - Pandas Series.value_counts() 的奇怪行为

django - 来自路由器 IP 的无效 HOST header

django - 多项选择字段在 Django 中不显示查询集

python - SFTP 通过 Paramiko : Errno 10061 (probably proxy)

python - 使用 HTTP 代理 - Python

c# - C# 中的 UDP 代理?需要一点帮助