Method Not Allowed flask error 405
This is because you only allow POST requests when defining your route.
When you visit /registrazione
in your browser, it will do a GET request first. Only once you submit the form your browser will do a POST. So for a self-submitting form like yours, you need to handle both.
Using
@app.route('/registrazione', methods=['GET', 'POST'])
should work.
Just for people reading on it now.You have to render the /registrazione first, befor you can access the form data. Just write.
@app.route("/registrazione") def render_registrazione() -> "html": return render_template("registrazione.html")
before you define def registration(). Sequence is key. You can't access data before the even are available. This is my understanding of the problem.
Example of a flask app using wsgi with JQuery, Ajax and json:
activecalls.py
from flask import Flask, jsonifyapplication = Flask(__name__, static_url_path='')@application.route('/')def activecalls(): return application.send_static_file('activecalls/active_calls_map.html')@application.route('/_getData', methods=['GET', 'POST'])def getData(): #hit the data, package it, put it into json. #ajax would have to hit this every so often to get latest data. arr = {} arr["blah"] = [] arr["blah"].append("stuff"); return jsonify(response=arr)if __name__ == '__main__': application.run()
Javascript json, /static/activecalls/active_calls_map.html:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><script>$.ajax({ //url : "http://dev.consumerunited.com/wsgi/activecalls.py/_getData", url : "activecalls.py/_getData", type: "POST", data : formData, datatype : "jsonp", success: function(data, textStatus, jqXHR) { //data - response from server alert("'" + data.response.blah + "'"); }, error: function (jqXHR, textStatus, errorThrown) { alert("error: " + errorThrown); }});</script>
When you run this. The alert box prints: "stuff".