2017-07-18 7 views
0

私はPython3でPOSTメソッドを使用してFlaskアプリケーションを作成しました。コマンドプロンプトでURLを押すたびに、GETメソッドが呼び出されます。
ここでは、アプリケーションである:私のようにコマンドラインに表示さFlaskアプリケーションがブラウザのURLからPOSTリクエストを与えていない

http://127.0.0.1:5000/api/v1.0/qanda/?text=ggg 

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [18/Jul/2017 09:33:15] "GET /api/v1.0/qanda/?text=ggg HTTP/1.1" 200 - 
127.0.0.1 - - [18/Jul/2017 09:33:22] "GET /api/v1.0/qanda/?text=ggg HTTP/1.1" 200 - 

しかし、私は唯一のポストを使用したい私は、URLを打つたび

from flask import Flask, jsonify, make_response, request  
app = Flask(__name__) 
@app.route('/api/v1.0/qanda/', methods=['POST']) 
def people_api(): 
    if request.method == 'POST': 
     text = request.data.get('text', '') 

     if text is None: 
      make_response(jsonify({'error': 'Missing text parameter'}), 400) 
    return text 
app.run() 

メソッドを呼び出すことができます。私はなぜGETメソッドが再生されるのか分かりません。親切にも、GETメソッドの代わりにPOSTメソッドを使用して、ブラウザからURLを取得する方法を教えてください。

+0

クロームプラグインを作るためのpythonのrequestsモジュールを使用することができます

それとも単にはいいです。 '

'のようなhtml形式も動作します – Luke

+0

ブラウザからURLを打つと、ブラウザからサーバにGET要求が送られます。あなたはこの方法でPOSTリクエストを送ることはできません! – Zico

答えて

0

アドレスバーからPOST要求を行うことはできません。 JavaScriptを使用するか、method = 'post'のフォームを送信する必要があります。

カップルの例:

フォーム:(jQueryを使って)

<form method='post' action='your url'> 
    <input name='name' type='text'> 
    <input type='submit'> 
</form> 

はJavaScript:

$.post({'your': 'data'}) 
+0

https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en – Luke

+0

これはアドレスバーではありません。それはプラグインです。それが何をしているのか誤解しない限り。 –

+0

@CoryMaddenはい、あなたは書き込みます。私はアプリケーションを探していませんが、アドレスバーの解決策のため –

0

あなたは、ブラウザのアドレスバーからURLへのポスト呼び出しを行うことはできません。 postmanツールを使用できます。このツールを使用してリクエストを行うことは非常に簡単で、すべてのリクエストメソッドと認証ヘッダーをサポートしています。あなたはポストの要求(および、そのようなポストマンとして多くの人を、)作成するための要求

Import requests 

r = requests.post('http://httpbin.org/post/', data = {'key':'value'}) 
関連する問題