2017-08-07 31 views
-1

私はFlaskにとって非常に新しいです。私はFlaskアプリケーションを構築しており、それをサーバー上でホストしています。以下はフラスコ塗布のコードですFlask - ローカルホストの代わりにipアドレスにアプリケーションをルーティングする方法

from flask import Flask, render_template, request 
import pandas as pd 

df = pd.read_csv("./Predicted.csv") 
app = Flask(__name__) 

@app.route("/", methods=['GET', 'POST']) 
def index(): 
    return render_template('index.html') 

@app.route("/submit", methods=['GET', 'POST']) 
def submit_table(): 
    if request.method == 'POST': 
     if request.form['submit'] == 'Get Started!': 
      html_string = df.to_html() 
      return render_template('submit.html', q1=html_string) 


if __name__ == '__main__': 
    app.run(host="0.0.0.0",port=5050, threaded=True) 

私はこのアプリを内部組織にしか見えないようにする必要があります。サーバー名は10.143.284.249 です。次のリンクに行くと、http://10.143.284.249:5050/が動作します。しかし、「Get Started!」をクリックするとボタンをクリックするとhttp://localhost:5000/submitにリダイレクトされ、http://10.143.284.249:5050/submitに変更すると内部サービスエラーが発生します。何がある5000が、10.143.284.249:5050

2):

は、私はそれが、サーバーではなくローカルホストのアドレスにリダイレクトするように私は私のコードを変更するにはどうすればよい

1)2つの質問を、持っています私がローカルで実行したときに内部サービスエラーが発生していたためです。

+0

一般に、アプリケーションにWebサーバーを実行させるのは悪い考えです。私はあなたにproxypassを使ってそれを送るためにnginxを使うことを勧めます。いずれにせよ、いくつかのトレースバックを提供できますか? –

+0

'index.html'には何がありますか?それがないとlocalhostにリダイレクトする理由を言うのは難しいです。 – kichik

+0

'index.html'はメインWeb着陸ページです –

答えて

0

submit_table()は、GETで何も返さないため、500エラーが発生している可能性があります。 GETPOSTをサポートする予定がある場合、関数はどちらの場合もブラウザに何かを返す必要があります。

index.htmlが含まれていないため、[開始]をクリックするとPOSTを使用するかどうかはわかりません。しかし、手動でhttp://10.143.284.249:5050/submitを参照すると、それは間違いなくGETを使用していて、あなたの関数はそれを処理しません。

関連する問題