我需要重新启动django服务器才能使我的应用程序正常工作

时间:2013-05-18 08:24:02

标签: django python-2.7 reddit http-error

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

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

由于我是所有这一切的菜鸟,我不确定发生了什么。所以有人在乎帮我吗?

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

1 个答案:

答案 0 :(得分:0)

global函数中使用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以便它返回一个网址,然后在您的函数中获取此网址。

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上部署它。部署可能会导致很多问题,所以最好先从开始使用的应用程序开始。

祝你好运:)