Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial
Kortney Field
14,091 PointsBackground colors are not saving after pressing update
can you tell me where in my code I am going wrong? I have watched this video more times than I would like to admit. Maybe it has to do with the cookies? I feel like I am being left in the dust here.
builder.html
{% extends "layout.html" %}
{% block content %}
<!--Build Area -->
<form action="{{ url_for('save') }}" method="POST" class="wrap no-top">
<div class="grid-100 row">
<div class="grid-30">
<div class="title">
<input type="text" name="name" value="{{ saves.get('name', '') }}">
</div>
</div>
<div class="grid-70">
<div class="colors">
{% for color in options['colors'] %}
<input type='radio' id="{{ color }}" name="colors" value'{{color}}'
{% if saves.get('colors') == color %} checked {% endif%}>
<label for="{{ color }}"></label>
{% endfor %}
<button class="btn">Update</button>
</div>
</div>
<div id="bear" class="grid-100 bg-{{ saves.get('colors') }}">
<div class="bear-body"><img src="/static/img/bear_body.svg" /></div>
<div class="head"><img src="/static/img/bear_face.svg" /></div>
<div class="nose"><img src="/static/img/bear_nose.svg" /></div>
</div>
<div class="items">
</div>
</div>
</form>
{% endblock %}
app.py
import json
from flask import Flask
from flask import render_template
from flask import redirect
from flask import url_for
from flask import request
from flask import 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', json.dumps(data))
return response
app.run(debug=True, host='0.0.0.0', port=8000)
Kortney Field
14,091 PointsKortney Field
14,091 PointsI am attaching the my index.html as well
{% extends "layout.html" %}
{% block content %}
<!--Enter Name -->
<div class="enter-name">
<div class="grid-100">
<img src="/static/img/bear_avatar.svg" class="bear-avatar" />
</div>
<div class="grid-100">
<form action="{{url_for('save')}}" method="POST">
<label>Name your bear</label>
<input type="text" name="name" value="{{ saves.get('name', '') }}" autofocus>
<input type="submit" value="Let's build it!">
</form>
</div>
</div>
{% endblock %}
2 Answers
nakalkucing
12,964 PointsHi Kortney Field! I think I found the issue. You're missing an equals sign in your builder.html file:
<div class="colors">
{% for color in options['colors'] %}
<input type='radio' id="{{ color }}" name="colors" value'{{color}}'
^
Hope this helps. :) Let me know if that does/doesn't fix the problem. OK? Thx!
Kortney Field
14,091 PointsI cannot believe how many times I went through the video and dissecting the code character by character, I still missed that. Thank you so much for getting back to me.
nakalkucing
12,964 PointsNp! :)
Happy Coding, Kortney!
Ryan Groom
18,674 PointsRyan Groom
18,674 PointsKortney Field could you include a link to the video?