2

我从 Web 开发开始。我正在尝试使用 Instagram API 和 Django 开发和 webapp。我看到很多人使用 Tornado Web Server 进行实时订阅。所以我使用 Webfaction 作为主机并找到了这段代码,所以我可以用 Tornado Web Server 提供的“WSGI Container”来包装我的 Django 项目:

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import tornado.web
import sys
import django.core.handlers.wsgi
sys.path.append('/path/to/project')

class HelloHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('Hello from tornado')

def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' # path to your settings module
    wsgi_app = tornado.wsgi.WSGIContainer(django.core.handlers.wsgi.WSGIHandler())
    tornado_app = tornado.web.Application(
            [
                    ('/hello-tornado', HelloHandler),
                    ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
            ]
    )
    http_server = tornado.httpserver.HTTPServer(tornado_app)
    http_server.listen(8080)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

所以我在我的 Webfaction 服务器中运行这个 python 脚本,每次我尝试访问“ http://mywebsite.com/hello-tornado/ ”似乎都不起作用。我知道我在该端口上运行 Tornado Web 服务器,但不知道如何从浏览器或类似的东西访问。我在这里做错了什么?感谢您的帮助和耐心。将为每个答案提供网络高五。

编辑:我真正想做的是,我想通过 Tornado 接收来自我使用 Instagram 实时订阅 API 进行的订阅的所有调用,因为我有一个回调 url “ http://mysite.com/sub “我希望能够通过 Tornado 接收。

4

2 回答 2

2

您在端口 8080 启动服务器,Web 浏览器默认使用端口 80,尝试使用:http ://mywebsite.com:8080/hello-tornado

如果你想使用 80 端口并且你已经在盒子里运行了一个 web 服务器,你可以尝试遵循 Ali-Akber Saifee 的建议,或者直接从服务器运行 WSGI 应用程序,使用类似 mod_python ( http://www.modpython .org ),您将失去运行 Tornado 代码的能力,但 Django 可以工作。

于 2013-02-24T23:46:07.553 回答
0

您必须创建一个自定义应用程序(侦听端口),记下分配给您的应用程序的端口,然后配置 tornado 以在该端口上服务:http_server.listen(my port) 您还可以避免龙卷风并直接通过安装 django 启动应用程序。

于 2013-03-19T19:53:19.177 回答