2017-09-30 10 views
-1

Python-Flaskサーバーの誤解を助けてください。私はフラスコを使ったいくつかのプロジェクトを持っていますが、それはローカルサーバー127.0.0.1上では完全に動作しますが、Webサーバー(青いホスト)に移動したときにスクリプトの一部が私に次のようなエラーを表示します:Pythonフラスコサーバーの問題

ここで私はjQuery、Ajax

<button class="myButton" id = "Lbutton">Load</button> 

<script> 

$("#Lbutton").click(function(){ 

    $.ajax({ 
      url: "/table, 
      type: "get", 
      data: {jsdata: $("#select option:selected").text()}, 
      success: function(response) { 
      $("#place_for_suggestions").html(response); 

      }, 
      error: function(xhr) { 
      // handle error 
      } 
     }); 

}); 

</script> 

URL:「/テーブル、はフラスコ機能のためのリンクです:

@FlaskApp2.route('/table') 
def table(): 

    modid = request.args.get('jsdata') 
    return render_template('table.html') 

しかし、最終的にはサーバーは私にエラーを与えた:

ページをリロードせずにテーブルを表示する応答

File does not exist: /home1/user/public_html/table

アクションのための直接のリンクはなぜですか、サーバーはファイルのリンクのように理解できますか?

ので、Pythonのフラスコ

<form action="/sendemail" method="post"> 

にすべてのアクションは、サーバーは、リンクのように理解し、エラーメッセージを与えます!

私は間違っていますか?

答えて

0

ほとんどの場合、route定義にPOSTメソッドを追加する必要があります。

@FlaskApp2.route('/table') 

は次のようになります。ここ

@FlaskApp2.route('/table', methods=['GET', 'POST']) 

チェックアウトのドキュメントを:GETとPOSTのHTTPメソッドの両方を受け入れたエンドポイントの例を持っている http://flask.pocoo.org/docs/0.12/quickstart/#http-methods

はまた、関連する質問をチェックアウト:解決Flask example with POST

+0

試してみませんか?なぜローカルサーバー127.0.0.1で動作しますか? – TheRutubeify

+0

URLに完全なパスを書く必要があるかもしれません: "templates/table"、 – TheRutubeify

2

を、私は

アクションとルートに完全なパスを配置する必要があります()デコレータする@ app.route「/.../templates/table.html」