2

私はWeb開発から始めています。Instagram API と Django を使用して webapp を開発しようとしています。多くの人がリアルタイム サブスクリプションに Tornado Web Server を使用しているようです。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 サーバーを実行していることは知っていますが、ブラウザーなどからのアクセス方法もわかりません。ここで何が間違っていますか?ご協力いただきありがとうございます。回答ごとにサイバー ハイタッチします。

編集:私が実際にやろうとしているのは、Tornado を介して Instagram RealTime Subscription API で行ったサブスクリプションからのすべての呼び出しを受信したいということです。そのために、コールバック URL " http://mysite.com/subがあります」とトルネードで受信できるようにしたいです。

4

2 に答える 2

2

ポート 8080 でサーバーを起動しています。Web ブラウザはデフォルトでポート 80 を使用します。次を使用してみてください: http://mywebsite.com:8080/hello-tornado

ポート 80 を使用する必要があり、ボックス内で既に Web サーバーが実行されている場合は、Ali-Akber Saifee の提案に従うか、mod_python ( http://www.modpython .org )、Tornado コードを実行できなくなりますが、Django は動作します。

于 2013-02-24T23:46:07.553 に答える
0

カスタムアプリを作成し(ポートでリッスン)、アプリに割り当てられているポートをメモしてから、そのポートでサービスを提供するようにトルネードを構成する必要があります:http_server.listen(my port)トルネードを回避し、djangoをインストールして直接開始することもできますアプリ。

于 2013-03-19T19:53:19.177 に答える