diff options
-rw-r--r-- | app.py | 12 | ||||
-rw-r--r-- | templates/beerpage.jinja2 | 40 | ||||
-rw-r--r-- | templates/similar.jinja2 | 2 |
3 files changed, 37 insertions, 17 deletions
@@ -1,6 +1,7 @@ from flask import Flask from flask import render_template from flask import redirect +from flask import request from flask import url_for import json import random @@ -8,7 +9,7 @@ import re app = Flask(__name__) -with open("./data/beers.json") as beers_json: +with open("./data/beer_info.json") as beers_json: beer = json.loads(beers_json.read()) with open('./data/brewery_names.json', 'w') as f: @@ -31,7 +32,7 @@ def get_brewery_list(brewery_id): return json.dumps(find_beers_from_brewery(brewery_id)) -@app.route('/brewery/<brewery_id>/<beer_id>') +@app.route('/brewery/<brewery_id>/<beer_id>', methods=['GET', 'POST']) def get_beer_details(brewery_id, beer_id): beer_result, brewery_name = beer_lookup(brewery_id, beer_id) beerinfo = BeerInfo(beer_result, brewery_name) @@ -40,6 +41,12 @@ def get_beer_details(brewery_id, beer_id): 'Barnyardy', 'Woody', 'Smoky', 'Roasty', 'Yeasty', 'Sweet', 'Juicy', 'Light', 'Thin', 'Spicy', 'Dry', 'Fruity', 'Herbal', 'Salty'] + if request.method == 'POST': + similar_beers = [] + attr = request.form['attr'] + direction = request.form['direction'] + return render_template('beerpage.jinja2', beer_data=beerinfo, attrs=attrs, + similar_beers=similar_beers, attr=attr, direction=direction) return render_template('beerpage.jinja2', beer_data=beerinfo, attrs=attrs) @@ -66,6 +73,7 @@ class BeerInfo(object): self.name = item_json[0] self.abv = item_json[2] self.brewer = brewery_name + self.num_reviews = item_json[3] class Brewery(object): diff --git a/templates/beerpage.jinja2 b/templates/beerpage.jinja2 index c99045d..f16660c 100644 --- a/templates/beerpage.jinja2 +++ b/templates/beerpage.jinja2 @@ -18,20 +18,32 @@ </tr> </table> </div> - <div class="row"> - <select> - <option value="3">Much more</option> - <option value="2">More</option> - <option value="1">Little more</option> - <option value="-1">Little less</option> - <option value="-2">Less</option> - <option value="-3">Much less</option> - </select> - <select> - {% for attr in attrs %} + <form action="" method="post"> + <p> + Show me beers which are + <select name="direction"> + <option value="3">Much more</option> + <option value="2">More</option> + <option value="1">Little more</option> + <option value="-1">Little less</option> + <option value="-2">Less</option> + <option value="-3">Much less</option> + </select> + <select name="attr"> + {% for attr in attrs %} <option value="{{ attr }}"> {{ attr }}</option> - {% endfor %} - </select> - </div> + {% endfor %} + </select> + <input type="submit" value="Go"> + </p> + </form> + {% if direction and attr %} + <h5>Beers like {{ beer_data.name }} but {{ direction }} {{ attr }}</h5> + <ul> + {% for similar_beer in similar_beers %} + <li>{{ similar_beer }}</li> + {% endfor %} + </ul> + {% endif %} {% endblock %} diff --git a/templates/similar.jinja2 b/templates/similar.jinja2 index b7a57f7..4bdd748 100644 --- a/templates/similar.jinja2 +++ b/templates/similar.jinja2 @@ -1,6 +1,6 @@ {% extends "base.html" %} {% block content %} -<h1>Similar Beers</h1> +<h1>Beers Like {{ orig }} but {{ dir }} {{ attr }}</h1> <ul> {% for beer in beers %} <li>{{ beer }}</li> |