Python Flask Basics Character Builder Starting the Builder

Justin Carlson
Justin Carlson
12,755 Points

Method not allowed when trying to add builder route?

I have been trying to figure out what I'm doing wrong here... I even deleted my workspace and started fresh with a new template for the course and still get this error after naming the bear.

"Method Not Allowed

The method is not allowed for the requested URL."

here is what I have for code I am sure its something simple that I have just missed but I can not find it:

import json

from flask import (Flask, render_template, redirect,
                   url_for, request, make_response)

from options import DEFAULTS

app = Flask(__name__)


def get_saved_data():
    try:
        data = json.loads(request.cookies.get('character'))
    except TypeError:
        data = {}
    return data



@app.route('/')
def index():
    return render_template('index.html', saves=get_saved_data())

@app.route('/builder')
def builder():
    return render_template(
        'builder.html',
        saves=get_saved_data(),
        options=DEFAULTS
    )

@app.route('/save', methods=['POST'])
def save():
    response = make_response(redirect(url_for('builder')))
    data = get_saved_data()
    data.update(dict(request.form.items()))
    response.set_cookie('character', data)
    return response


app.run(debug=True, host='0.0.0.0', port=8000)

1 Answer

Kenneth Love
STAFF
Kenneth Love
Treehouse Guest Teacher

I have a feeling that you have a form in your HTML sending data, via POST, to either /builder or /.