के साथ असामान्य प्रारंभिक व्यवहार के साथ खराब अनुरोध त्रुटि मैं फ्लास्क, पायथन और एचटीएमएल का उपयोग कर एक वेब ऐप लिख रहा हूं। मेरे मुद्दा यह है कि पहली बार मैं किसी वेबपृष्ठ को लोड है, मैं निम्न त्रुटिफ्लास्क, पायथन, एचटीएमएल, flask.request.form
गलत अनुरोध ब्राउज़र (या प्रॉक्सी) एक अनुरोध है कि इस सर्वर नहीं समझ सकता भेजा मिलता है।
मैं "धोखा देना" पहले किसी भी flask.request.form
कॉल के बिना यह चल रहा है, और उसके बाद (विवरण नीचे) में उन्हें वापस रख कर अंत में लोड करने के लिए पेज प्राप्त करने में सक्षम हूँ। मेरे प्रारंभ में कुछ गलत होना चाहिए। मैं flask
पर नया हूं और HTML
के साथ उपयोग कर रहा हूं।
मान लें कि मैं example
नामक निर्देशिका से काम कर रहा हूं। मैं एक अजगर स्क्रिप्ट test.py
कहा जाता है और निम्न निर्देशिका संरचना के साथ test.html
कहा जाता है एक HTML टेम्पलेट है:
\example\test.py
\example\templates\test.html
मेरे अजगर स्क्रिप्ट test.py
है:
import sys
import flask, flask.views
app = flask.Flask(__name__)
app.secret_key = "bacon"
class View(flask.views.MethodView):
def get(self):
result = flask.request.form['result']
return flask.render_template('test.html', result=result)
# return flask.render_template('test.html')
def post(self):
return self.get()
app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])
app.debug = True
app.run()
और test.html
में मेरी एचटीएमएल
<html>
<head>
</head>
<body>
<form action="/" method="post">
Enter something into the box:
<input type="text" name="result"/><br>
<input type="submit" value="Execute!"/>
</form>
</body>
</html>
है
त्रुटि को पुन: उत्पन्न करने के चरण
1: test.py
स्क्रिप्ट चलाएँ, और एक ब्राउज़र में URL को खोलने
Running on http://127.0.0.1:5000/
आपको निम्न त्रुटि
गलत अनुरोध देखना चाहिए ब्राउज़र (या प्रॉक्सी) एक अनुरोध भेजा कि यह सर्वर समझ में नहीं आया।
2: def get(self)
समारोह के पहले 2 लाइनों बाहर टिप्पणी और def get(self)
समारोह के 3 लाइन uncomment ताकि test.py
इस
import sys
import flask, flask.views
app = flask.Flask(__name__)
app.secret_key = "bacon"
class View(flask.views.MethodView):
def get(self):
# result = flask.request.form['result']
# return flask.render_template('test.html', result=result)
return flask.render_template('test.html')
def post(self):
return self.get()
app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])
app.debug = True
app.run()
3 की तरह दिखता है: यूआरएल ताज़ा, और आप देखेंगे वह चीजें काम करती हैं (हालांकि मैं अंततः result
4: अब उन पंक्तियों को स्विच करें जिन्हें दोबारा टिप्पणी की गई है। Ie, def get(self)
फ़ंक्शन और कमेन की पहली 2 पंक्तियों को अनदेखा करना चाहते हैं def get(self)
समारोह के 3 लाइन बाहर टी ताकि test.py
इस
import sys
import flask, flask.views
app = flask.Flask(__name__)
app.secret_key = "bacon"
class View(flask.views.MethodView):
def get(self):
result = flask.request.form['result']
return flask.render_template('test.html', result=result)
# return flask.render_template('test.html')
def post(self):
return self.get()
app.add_url_rule('/', view_func=View.as_view('main'), methods=['GET', 'POST'])
app.debug = True
app.run()
5 की तरह दिखता है: यूआरएल ताज़ा और अब आप देख बातें इच्छानुसार काम हो जाएगा।
यह एक खिलौना उदाहरण है जो इस अजीब व्यवहार को प्रदर्शित करने वाली असली समस्या का वर्णन करता है कि मुझे अपने ब्राउज़र को मुझे इस वेबपृष्ठ को दिखाने में "चाल" कैसे करना है।
भयानक धन्यवाद:
None
यह सेट नहीं हैअपने कोड की संरचना का एक वैकल्पिक तरीका है ! – erin
यह फ्लास्क में डिफ़ॉल्ट अनुरोध मानों को कार्यान्वित करने के तरीके पर एक महान स्पष्टीकरण है। धन्यवाद। – earthmeLon
मैं एक अपाचे सर्वर पर फ्लास्क ऐप चला रहा हूं। कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मुझे एक बुरा अनुरोध त्रुटि मिलती है। 'ब्राउज़र ने एक प्रतिक्रिया भेजी' आदि क्या यह मेरे सर्वर के साथ कुछ करना है? –