2017-04-14 4 views
0

Flask en SQlALchemyを使用してCRUD REST APIを作成しようとしています。私はLinuxのシェルでcurlコマンドでリクエストを出していますが、動作させることはできません。私がPythonシェルを開いて手動で追加すると、データベースに追加されます。フラスコでリクエストエラーが発生しました

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
<title>400 Bad Request</title> 
<h1>Bad Request</h1> 
<p>The browser (or proxy) sent a request that this server could not understand.</p> 
@app.route('/create', methods = ['POST']) 
def create(): 
    username = request.form['username'] 
    age = request.form['age'] 
    email = request.form['email'] 
curl -X POST -F 'username=Juliana' -F 'age=87' -F '[email protected]' http://localhost:5000/create 
+0

適切なエラーDESCを教えてくださいription。 –

+0

このエラーは再現できません。それは私のテストで動作します。 – bernie

+0

笑、それはエラーだ、それは私のサーバーが私のカールの要求を理解していないと言っている。私はカールのリクエストで何かが間違っていると確信しています –

答えて

0

問題は、それが引数とフォーム辞書でキーを見つけるのに失敗した時にフラスコがHTTPエラーを発生させるということです。 Flaskは、デフォルトでは、特定のキーを要求していて、そのキーがない場合、何かが要求から除外され、要求全体が無効であると仮定します。

チェック:

  1. What is the cause of the Bad Request Error when submitting form in Flask application?
  2. Form sending error, Flask

変更あなたのcreate次のコードを視野に、出力はチェック:

@app.route('/create', methods = ['POST']) 
def create(): 
    username = request.form.get('username', '') 
    age = request.form.get('age', '') 
    email = request.form.get('email', '') 
    print username, age, email 

    # dbcreate = Profile(username, age, email) 
    # db.session.add(dbcreate) 
    # db.session.commit() 
    # print 'User Created' 
関連する問題