【问题标题】:i need to restart django server to make my app properly work我需要重新启动 django 服务器以使我的应用程序正常工作
【发布时间】:2013-05-18 08:24:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请发布一些代码或更多关于正在发生的事情的信息。这样的帮助是不可能的。
  • 这段代码比较长,我把它放在pastebin里:
  • 这段代码比较长,所以我会把它放在 pastebin 中:pastebin.com/8RRfX9TS pastebin.com/d7bEnQZC pastebin.com/jth2C5Gd pastebin.com/AKLX2btT pastebin.com/hMuk0tsy
  • 我不知道还能告诉你什么。
  • 另一件事。有时我在重新启动 django 服务器之前收到 HTTP 错误 404:未找到。在我这样做之后,一切都照常进行。

标签: django python-2.7 reddit http-error


【解决方案1】:

get_subreddit 函数中使用 global 对我来说是错误的。

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
  • 此时url无效,需要重启服务器。

您可能想要更改 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 的原因。
  • 您是否尝试下载您认为是的 url(正如我上面解释的,我不认为您是,因为您的 get_subreddit 方法存在问题)。

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

祝你好运:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 2016-06-08
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    相关资源
    最近更新 更多