HTML의 텍스트 상자에서 무언가를 가져 와서 플라스크에 넣은 다음 해당 데이터를 Python으로 구문 분석하는 방법이 있는지 궁금합니다. 나는 이것이 일부 JS를 포함 할 것이라고 생각했지만 틀릴 수 있습니다. 어떤 아이디어?
답변
좀 더 복잡한 작업을하고 싶지 않다면 HTML 양식에서 Flask로 데이터를 공급하는 것은 매우 쉽습니다.
- POST 요청을 수락하는보기를 만듭니다 (
my_form_post
). - 사전의 양식 요소에 액세스합니다
request.form
.
templates/my-form.html
:
<form method="POST">
<input name="text">
<input type="submit">
</form>
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('my-form.html')
@app.route('/', methods=['POST'])
def my_form_post():
text = request.form['text']
processed_text = text.upper()
return processed_text
요청 데이터 액세스 에 대한 Flask 문서입니다. 입니다.
유효성 검사가 필요한 더 복잡한 양식이 필요한 경우 WTForms 및 Flask와 통합하는 방법을 살펴볼 수 있습니다 .
참고 : 다른 제한 사항이없는 한 데이터를 전송하는 데 JavaScript 가 전혀 필요하지 않습니다 (사용할 수는 있지만).
답변
POST 입력 유형을 수락하도록 Flask 엔드 포인트를 선언 한 다음 필요한 단계를 수행합니다. jQuery를 사용하여 데이터를 게시하십시오.
from flask import request
@app.route('/parse_data', methods=['GET', 'POST'])
def parse_data(data):
if request.method == "POST":
#perform action here
var value = $('.textbox').val();
$.ajax({
type: 'POST',
url: "{{ url_for('parse_data') }}",
data: JSON.stringify(value),
contentType: 'application/json',
success: function(data){
// do something with the received data
}
});
답변
서버 (플라스크 앱)와 클라이언트 (브라우저) 간의 모든 상호 작용은 요청 및 응답으로 진행됩니다. 사용자가 양식에서 제출 버튼을 누르면 브라우저가이 양식을 사용하여 서버 (flask 앱)에 요청을 보내면 다음과 같은 양식의 콘텐츠를 얻을 수 있습니다.
request.args.get('form_name')
답변
URL에 응답 하는 뷰 를 작성하는 방법을 이미 알고 있다고 가정 Flask
하고 request.post
데이터 를 읽는 뷰 를 만듭니다 . input box
이 게시물에 데이터 를 추가하려면 텍스트 상자가있는 페이지에 양식을 작성하십시오. 그런 다음 사용할 수 있습니다 jquery
할
var data = $('#<form-id>').serialize()
그런 다음 아래와 같은 것을 사용하여 비동기 적으로 뷰에 게시합니다.
$.post('<your view url>', function(data) {
$('.result').html(data);
});
답변
이것은 나를 위해 일했습니다.
def parse_data():
if request.method == "POST":
data = request.get_json()
print(data['answers'])
return render_template('output.html', data=data)
$.ajax({
type: 'POST',
url: "/parse_data",
data: JSON.stringify({values}),
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data){
// do something with the received data
}
});