2012-08-29 18 views
41

मैं बस फ्लास्क सीखना शुरू कर रहा हूं, और मैं एक फॉर्म बनाने की कोशिश कर रहा हूं जो एक पोस्ट विधि की अनुमति देगा।फ्लास्क - पोस्ट त्रुटि 405 विधि अनुमत नहीं

@app.route('/template', methods=['GET', 'POST']) 
def template(): 
    if request.method == 'POST': 
     return "Hello" 
    return render_template('index.html') 

और मेरे index.html:

<html> 
    <head> 
    <title> Title </title> 
    </head> 
    <body> 
    Enter Python to execute: 
    <form action="/" method="post"> 
     <input type="text" name="expression" /> 
     <input type="submit" value="Execute" /> 
    </form> 
    </body> 
</html> 

लोड हो रहा है प्रपत्र (यह प्रतिपादन जब यह प्राप्त करता है प्राप्त) ठीक काम करता है यहाँ मेरी विधि है। जब मैं सबमिट बटन पर क्लिक करता हूं, तो मुझे एक पोस्ट 405 त्रुटि मिलती है विधि अनुमत नहीं है। यह हैलो क्यों प्रदर्शित नहीं किया गया है?

उत्तर

32

आपका प्रपत्र / को प्रस्तुत किया जाता है जब विधि /template के लिए रूट किया जाता है, जब तक कि कोई गलती है तो आप template दृश्य पर बात करने के लिए अपने रूप के action विशेषता का समायोजन करना चाहिए: action="{{ url_for('template') }}"

11

बदलें:

<form action="/" method="post"> 

साथ:

<form action="{{ url_for('template') }}" method="post"> 
4

आपछोड़ देते हैं तोविशेषता, फॉर्म वर्तमान यूआरएल पर पोस्ट करेगा।

बदलें:

<form action="/" method="post"> 

साथ:

<form method="post"> 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^