1

私は Python と Heroku の両方にまったく慣れていません... 以下に含まれる Python スクリプトを使用して xively.com と通信しようとしています。

このスクリプトは、ローカルでは問題なく動作しているようです。'foreman start' を実行すると、意図した機能が実行されます。

しかし、アプリをデプロイして、Heroku から提供された URL を開こうとすると、ブラウザーがスローします。

404 Not Found 要求された URL がサーバーで見つかりませんでした。

Heroku ログの対応するエントリは次のとおりです。

heroku[ルーター]: at=info method=GET path=/ host=...... request_id=...... fwd="....." dyno=web.1 connect=1ms service=13msステータス=404 バイト=384

#script to GET and PUT data to xively.com
import os
from flask import Flask
import xively

app = Flask(__name__)

key = 'FEED_KEY'  
feedid = 'FEED_ID'  

print "Starting Xively tutorial script"

client = xively.XivelyAPIClient(key) 
feed = client.feeds.get(feedid)
datastream = feed.datastreams.get("datastream1")

lev = datastream.current_value

client1 = xively.Client(key)  
datastream = xively.Datastream(id="datastream2", current_value= lev)  
client1.put('/v2/feeds/'+feedid, data={'datastreams': [datastream]}) 

次のようなステートメントがないことと関係があるのではないかと思います @app.route('/') 。...スクリプト内。スクリプトに含めて修正しようとし@app.route('/')ましたが、スクリプトが機能しません。ステートメントにサイトの URL を含める必要がありますか?

私が得ることができる助けを本当に感謝します...

4

1 に答える 1

0

含まれているスクリプトは、Xively API と通信しているようです (フィードの取得とデータの送信)。heroku Web アプリケーションに移動したら、このスクリプトを実行しますか? スクリプトの目的は Xively からデータを送受信することですが、「flask」を使用する目的は、Web アプリケーションを構築して heroku にデプロイすることです。heroku URL にアクセスしたら、スクリプトを実行したいと思うでしょう。その場合は、パス「/」にルーティングする関数の下にスクリプト全体を配置する必要があります。

@app.route('/')
def run_xively_script():
    put your code here.

heroku[ルーター]: at=info method=GET path=/ host=...... request_id=...... fwd="....." dyno=web.1 connect=1ms service=13msステータス=404 バイト=384

このメッセージを分解すると、誰か (おそらくあなた) がパス "/" で heroku Web アプリケーションにアクセスしようとしたが、そのパスが見つからなかったということです。これは、上記のコードの「/」パスで実行される関数がないためです。上記の「コードをここに置く」に xively スクリプトを入れてみてください。そのパスに到達してコードをherokuに再デプロイすると、コードの実行がトリガーされます。

基本的なフラスコの hello world アプリケーションについては、http://flask.pocoo.org/にもアクセスしてください。お役に立てれば。

于 2014-04-01T14:12:31.847 に答える