POST

The POST requests carry data that can be processed to add to a database. To differentiate a POST request, the Flask requests object has the method property, which can be checked to see if the request method was GET or POST. If we create a form (called AddForm) to add new arenas to the Arenas table, we could process the data submitted as a POST request and add it the database using the session manager:

from flask import request
from .forms import AddForm
@app.route('/nba/api/v0.1/arena/add', methods=['GET', 'POST'])
def add_arenas():
form = AddForm(request.form)
form.name.data = "New Arena"
form.longitude.data = -121.5
form.latitude.data = 37.8
if request.method == "POST":
arena = Arena()
arena.name = request.form['name']
arena.longitude =float(request.form['longitude'])
arena.latitude = float(request.form['latitude'])
arena.geom = 'SRID=4326;POINT({0} {1})'.format(arena.longitude, arena.latitude)
session.add(arena)
data = [{"type": "Feature", "properties":{"name":arena.name},
"geometry":{"type":"Point",
"coordinates":[round(arena.longitude,6), round(arena.latitude,6)]},}]
return jsonify({'added':'success',"type": "FeatureCollection","features":data})
return render_template('addarena.html', form=form)

As this method will accept both GET and POST requests, it sends a different response based on each request method.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset