私はPythonのFlaskフレームワークを使ってウェブサイトを構築しようとしています。Flaskで.txtファイルを開くには?
私はApache2を搭載したLinuxのUbuntuサーバーです。
私のウェブサイトで誰かがURL "/Elv_1.html"
を入力すると、.txt
ファイルを開き、値を取得してpygal
を使用してグラフを作成したいとします。ここに私のコードは次のとおりです。
@app.route('/river_1.html')
def riv_1():
try:
document = open('temp.txt','r')
temp_list = []
for n in document:
n = n.rstrip('\n')
n = int(n)
temp_list.append(n)
document.close()
graf = pygal.Line(title=u'Tempt last 24h')
graf.x_labels = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
graf.add('Temp', temp_list)
graf = graf.render_data_uri()
return render_template('river_1.html', graf=graf)
except Exception, e:
return str(e)
if __name__ == '__main__':
app.run(debug=True)
ファイル'temp.txt'
は__init__.py
ファイルと同じディレクトリにあります。 __init__.py
はコードが由来するFlaskアプリです。
ローカルホストを使用してサーバーを実行しているコンピュータでこれを行うと、正常に動作します。ファイルを見つけることが表示されない理由として
[Error 2] No such file or directory: 'temp.txt'
任意の提案:しかし、私は私のLinuxサーバにこれをアップロードし、その特定のURLを入力しようとすると、それは次のエラーが表示さ?
ファイルもサーバーに存在しますか?つまり、Pythonプログラムだけでなく、 'temp.txt'もサーバーにアップロードしましたか? – janos
ファイルがフラスコファイルと同じディレクトリにないようです。それが問題であるかどうかを確認してください。これらの問題は通常、間違った名前や間違ったパスのために見つけられます – VarunJoshi129
ローカルでアプリケーションを実行すると、それらは別としてありますが、サーバー上では 'wsgi server'を使ってアプリケーションを呼び出すことができます!)、そこにはPythonのパスには少し違いがあり、あなたはファイルに 'path'を与える方法を変更します。 – senaps