0

所以我制作了一个 python 脚本来从 subreddit(来自 Imgur 和 imgur 专辑)中获取图像。我成功地做到了(它返回 img url)并想将它集成到 django 中,这样我就可以在线部署它并让其他人使用它。当我开始在我的机器上运行服务器时,来自 subreddit 的图像完美加载,但是当我尝试另一个 subreddit 时,它对我来说很糟糕(我将在帖子末尾发布异常)。所以我重新启动了 django 服务器,同样的事情发生了。图像加载顺利。但我第二次这样做时,它对我来说很糟糕。是什么赋予了?

异常类型:siteError,几乎包含 urllib2.HTTPError、urllib2.URLError、socket.error、socket.sslerror

因为我是所有这一切的菜鸟,所以我不确定发生了什么。所以有人愿意帮助我吗?

注意:我还在 pythoneverywhere.com 上托管该应用程序。同样的结果。

4

1 回答 1

0

global在你的函数中使用 a在get_subreddit我看来是错误的。

reddit_url = 'http://reddit.com/r/'
def get_subreddit(name):
    global reddit_url
    reddit_url += name

每次运行该函数时,都会将 的值附加name到全局reddit_url.

  • 它开始于http://reddit.com/r/
  • 运行get_subreddit("python"),它变为http://reddit.com/r/python
  • 再次运行get_subreddit("python"),它变为http://reddit.com/r/pythonpython
  • 此时,网址无效,您必须重新启动服务器。

您可能想要更改get_subreddit以使其返回一个 url,并在您的函数中获取此 url。

def get_subreddit(name):
    return "http://reddit.com/r/" + name

# in your view
url = get_subreddit("python")
# now fetch url

您的代码中可能还有其他错误。你不能真的指望堆栈溢出的人会为你解决这个规模的项目的所有问题。你能做的最好的事情就是学习一些自己调试代码的技术。

  • 查看完整的回溯,而不仅仅是最终的SiteError. 查看问题发生在代码的哪一行。
  • 添加一些日志记录或打印语句,并尝试找出SiteError发生这种情况的原因。
  • 您是否尝试下载您认为自己的网址(正如我上面解释的那样,我不认为您是,因为您的get_subreddit方法存在问题)。

最后,我建议您确保该站点在您的开发机器上运行,然后再将其部署到任何地方的 python 上。部署本身可能会引起很多麻烦,因此最好在开始之前从一个正在运行的应用程序开始。

祝你好运 :)

于 2013-05-18T15:19:30.693 回答