猎鹰应用程序没有在gunicorn下运行

时间:2014-06-26 08:14:24

标签: python gunicorn falcon

我有这个琐碎的猎鹰应用程序:

import falcon

class ThingsResource:
    def on_get(self, req, resq) :
        #"""Handels GET requests"""
        resp.status = falcon.HTTP_200
                resp.body = '{"message":"hello"}'


app = falcon.API()
things = ThingsResource()
app.add_route('/things', things)

我正试着用这种方式使用gunicorn运行它:

arif@ubuntu:~/dialer_api$ gunicorn things:app

但当我尝试将其与httpie连接时,我得到了这个:

arif@ubuntu:~$ http localhost:8000/things
HTTP/1.1 500 Internal Server Error
Connection: close
Content-Length: 141
Content-Type: text/html

<html>
  <head>
    <title>Internal Server Error</title>
  </head>
  <body>
    <h1><p>Internal Server Error</p></h1>

  </body>
</html>

这是微不足道的,我不知道这里出了什么问题?

1 个答案:

答案 0 :(得分:3)

你的第7行,当它不应该缩进时。 你的第6行是指resq,而不是你以后使用的resp。 这意味着您的后续行引用resp失败。

每当您遇到这样的内部服务器错误时,通常都是因为代码错误。你的gunicorn进程本应该吐出错误。我已经附加了代码的更正版本,包括确保它符合python的约定(例如,每个缩进4个空格)。像online python code checker这样的工具可以帮助您处理这样的小代码片段,尤其是间距问题。

import falcon


class ThingsResource():
    def on_get(self, req, resp):
        resp.status = falcon.HTTP_200
        resp.body = '{"message":"hello"}'


app = falcon.API()
things = ThingsResource()
app.add_route('/things', things)

将此代码保存到另一个文件中,然后运行diff以查看我已更改的内容。主要问题是resp和不合适的缩进。