मैं सोच रहा था कि क्या HTML में एक टेक्स्ट बॉक्स से कुछ लेने का कोई तरीका है, इसे फ्लास्क में खिलाएं, फिर उस डेटा को Python के साथ पार्स करें। मैं सोच रहा था कि इसमें कुछ जेएस शामिल हो सकते हैं लेकिन मैं गलत हो सकता हूं। कोई विचार?
मैं सोच रहा था कि क्या HTML में एक टेक्स्ट बॉक्स से कुछ लेने का कोई तरीका है, इसे फ्लास्क में खिलाएं, फिर उस डेटा को Python के साथ पार्स करें। मैं सोच रहा था कि इसमें कुछ जेएस शामिल हो सकते हैं लेकिन मैं गलत हो सकता हूं। कोई विचार?
जवाबों:
जब तक आप कुछ अधिक जटिल करना चाहते हैं, फ्लास्क में HTML फॉर्म से डेटा फीड करना बहुत आसान है।
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
यह अनुरोध डेटा तक पहुँचने के बारे में फ्लास्क प्रलेखन है ।
यदि आपको अधिक जटिल रूपों की आवश्यकता है जो सत्यापन की आवश्यकता है तो आप WTForms पर नज़र डाल सकते हैं और उन्हें फ्लास्क के साथ कैसे एकीकृत कर सकते हैं ।
नोट: जब तक आप किसी भी अन्य प्रतिबंध है, तुम सच में जावास्क्रिप्ट की जरूरत नहीं है सब पर आपका डेटा भेजने में (हालांकि आप इसका इस्तेमाल कर सकते हैं)।
app.debug = True
इससे पहले app.run()
कि आप त्रुटि का अपवाद और ट्रेसबैक प्राप्त करें, बस डाल दें ।
<input type="text" name="text">
द्वारा प्रतिस्थापित करें <textarea name="text"></textarea>
और आपको ठीक होना चाहिए।
POST इनपुट प्रकार को स्वीकार करने के लिए एक फ्लास्क एंडपॉइंट की घोषणा करें और फिर आवश्यक कदम उठाएं। डेटा पोस्ट करने के लिए 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
}
});
अनुरोध और प्रतिक्रिया द्वारा जा रहे सर्वर (आपके फ्लास्क ऐप) और क्लाइंट (ब्राउज़र) के बीच सभी इंटरैक्शन। जब उपयोगकर्ता हिट बटन आपके फॉर्म में जमा करता है तो उसका ब्राउज़र इस फॉर्म के साथ आपके सर्वर (फ्लास्क ऐप) को अनुरोध भेजता है, और आप फॉर्म की सामग्री प्राप्त कर सकते हैं:
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
}
});