2017-02-10 7 views
-1

私はフォームからデータを取得する必要があります。フラスコでフォームデータを取得するには?

私は、フォームを作成するためにJavaScriptを使用します。

<script> 
function checkAuth() { 
       var user = ADAL.getCachedUser(); 
       if (user) { 
        var form = $('<form style="position: absolute; width: 0; height: 0; opacity: 0; display: none; visibility: hidden;" method="POST" action= "{{ url_for("general.microsoft") }}">'); 

        form.append('<input type="hidden" name="token" value="' + ADAL.getCachedToken(ADAL.config.clientId) + '">'); 
        form.append('<input type="hidden" name="json" value="' + encodeURIComponent(JSON.stringify(user)) + '">'); 
        $("body").append(form); 
        form.submit(); 
       } 
      } 
</script> 

、私はname="json"入力フィールドからデータを取得する必要があります。私は、フォームからのデータを得るのを助ける

builtins.KeyError KeyError: 'json'

@general.route("/microsoft/", methods=["GET", "POST"]) 
@csrf.exempt 
def microsoft(): 
    form = cgi.FieldStorage() 
    name = form['json'].value 
    return name 

しかし、私はエラーを取得する:ここで

は、私の見解関数です。

+0

あなたはより詳細な情報を提供することができますしてください? – WhatsThePoint

+0

@WhatsThePointスクリプトは、処理されるPythonにデータを送信します。私は 'name =" json "' –

答えて

1

は、フラスコのリクエストオブジェクトからフォームデータを取得します。

from flask import Flask, request 
app = Flask(__name__) 

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    data = request.form['input_name'] 

あなたはこのように、400エラーを回避するために、デフォルト値をも設定することができます。

from flask import Flask, request 
app = Flask(__name__) 

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    default_name = '0' 
    data = request.form.get('input_name', default_name) 
+0

から値のデータを引き出す必要があります。ありがとう、 'name'をどのようにデコードできるのですか?戻り値は 'eb2a-4390-8283-1be75d3ad422%22%2C%22oid%22%3A%22a3c6887f-614b-42b7-9a08-' –

+1

です。これは新しい質問です...あなたは私の答えを受け入れ、別の質問を書く必要があります:) –

関連する問題