没有Heroku收集的龙卷风路线

时间:2017-03-29 21:02:00

标签: python heroku routes tornado

我遵循基于我不想使用的服务的教程(Drone Deploy): https://dronedeploy.gitbooks.io/dronedeploy-apps/content/server_example.html 我2天前在他们的论坛上为这个问题做了一个主题。(和Github上的回购)

但也许有人可以帮助我。

我遇到了Heroku服务器应用程序的问题。 我使用Python和Tornado模块。

事实是我遇到了404错误 我的终端(在测试它的时候)问我: "警告:tornado.access:404 GET /(:: 1)0.75ms"

所以" GET"功能不起作用,也许是因为HTTP访问控制(CORS)我尝试了很多修复,但都没有用。

也许我做错了什么,或者忘记了什么。

更新: 最近,Drone部署的人员说我的龙卷风路线并没有被heroku接收。 在完成了许多教程并阅读了Tornado文档后,我不知道如何路由它。

服务器的网址:https://stardrone-server.herokuapp.com/

这个代码:

import os
import requests

import tornado.ioloop

import tornado.web


GEOCODE_FMT = 'https://maps.googleapis.com/maps/api/geocode/json?address={address}&key={key}'


class GeocodeHandler(tornado.web.RequestHandler):
    """Proxy a call to the Google Maps geocode API"""

    def set_default_headers(self):
        # allow cross-origin requests to be made from your app on DroneDeploy to your web server
        self.set_header("Access-Control-Allow-Origin", "https://www.dronedeploy.com")
        self.set_header("Access-Control-Allow-Headers", "x-requested-with")
        # add more allowed methods when adding more handlers (POST, PUT, etc.)
        self.set_header("Access-Control-Allow-Methods", "GET, OPTIONS")

    def get(self):
        api_key = os.environ.get("MyApiKey")
        address = self.get_query_argument("address")
        url = GEOCODE_FMT.format(address=address, key=api_key)

        # fetch results of the geocode from Google
        response = requests.get(url)

        # send the results back to the client
        self.write(response.content)

    def options(self):
        # no body
        self.set_status(204)
        self.finish()


def main():
    application = tornado.web.Application([
        (r"/geocode/", GeocodeHandler)
    ])
    port = int(os.environ.get("PORT", 5000))
    application.listen(port)
    tornado.ioloop.IOLoop.current().start()

if __name__ == "__main__":
    main()

也许我错过了什么。 任何帮助,建议表示赞赏

谢谢

约翰

0 个答案:

没有答案