我从网络开发开始。我正在尝试使用 Instagram API 和 Django 开发 web 应用程序。我发现很多人都在使用 Tornado Web 服务器进行实时订阅。因此,我使用 Webfaction 作为主机并找到了此代码,以便我可以使用 Tornado Web Server 提供的“WSGI 容器”包装我的 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 服务器,但不知道如何从浏览器或类似的东西进行访问。我在这里做错了什么?感谢您的帮助和耐心。将为每个答案点赞。
编辑:我真正想做的是,我想接收来 self 通过 Tornado 使用 Instagram 实时订阅 API 进行的订阅的所有调用,为此我有一个回调 url“http://mysite.com/sub”,并且我希望能够通过Tornado接收。
最佳答案
您正在端口 8080 启动服务器,Web 浏览器默认使用端口 80,请尝试使用:http://mywebsite.com:8080/hello-tornado
如果您想使用端口 80 并且您已经在框中运行了一个 Web 服务器,您可以尝试遵循 Ali-Akber Saifee 建议,或者直接从服务器运行 WSGI 应用程序,使用 mod_python ( http://www.modpython.org ) 之类的东西,您将失去运行 Tornado 代码的能力,但 Django 可以工作。
关于python - webfaction 中的 Tornado Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057804/