programing

플라스크에서 양식 데이터를 얻는 방법은?

lastmoon 2023. 3. 13. 20:45
반응형

플라스크에서 양식 데이터를 얻는 방법은?

형식에서 데이터를 가져와야 합니다.

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".

뷰 기능은 다음과 같습니다.

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

하지만 오류가 발생합니다.

builtins.KeyError KeyError: 'json'

폼에서 데이터를 가져올 수 있습니다.

Flask의 요청 개체에서 폼 데이터를 얻을 수 있습니다.form속성:

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

@app.route('/', methods=['GET', 'POST'])
def index():
    data = request.form['input_name']  # pass the form field name as key
    ...
    

디폴트값을 설정해, 400 에러를 회피할 수도 있습니다.get()이후 방식request.form속성은 dict와 같은 객체입니다.

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

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

언급URL : https://stackoverflow.com/questions/42154602/how-to-get-form-data-in-flask

반응형