diff --git a/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/cafe-data.csv b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/cafe-data.csv new file mode 100644 index 0000000..8b55f64 --- /dev/null +++ b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/cafe-data.csv @@ -0,0 +1,5 @@ +Cafe Name,Location,Open,Close,Coffee,Wifi,Power +Lighthaus,https://goo.gl/maps/2EvhB4oq4gyUXKXx9,11AM, 3:30PM,☕☕☕☕️,💪💪,🔌🔌🔌 +Esters,https://goo.gl/maps/13Tjc36HuPWLELaSA,8AM,3PM,☕☕☕☕,💪💪💪,🔌 +Ginger & White,https://goo.gl/maps/DqMx2g5LiAqv3pJQ9,7:30AM,5:30PM,☕☕☕,✘,🔌 +Mare Street Market,https://goo.gl/maps/ALR8iBiNN6tVfuAA8,8AM,1PM,☕☕,💪💪💪,🔌🔌🔌 \ No newline at end of file diff --git a/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/main.py b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/main.py new file mode 100644 index 0000000..e58b0ba --- /dev/null +++ b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/main.py @@ -0,0 +1,67 @@ +from flask import Flask, render_template +from flask_bootstrap import Bootstrap5 +from flask_wtf import FlaskForm +from wtforms import StringField, SubmitField +from wtforms.validators import DataRequired +import csv + +''' +Red underlines? Install the required packages first: +Open the Terminal in PyCharm (bottom left). + +On Windows type: +python -m pip install -r requirements.txt + +On MacOS type: +pip3 install -r requirements.txt + +This will install the packages from requirements.txt for this project. +''' + +app = Flask(__name__) +app.config['SECRET_KEY'] = '8BYkEfBA6O6donzWlSihBXox7C0sKR6b' +Bootstrap5(app) + + +class CafeForm(FlaskForm): + cafe = StringField('Cafe name', validators=[DataRequired()]) + submit = SubmitField('Submit') + +# Exercise: +# add: Location URL, open time, closing time, coffee rating, wifi rating, power outlet rating fields +# make coffee/wifi/power a select element with choice of 0 to 5. +#e.g. You could use emojis ☕️/💪/✘/🔌 +# make all fields required except submit +# use a validator to check that the URL field has a URL entered. +# --------------------------------------------------------------------------- + + +# all Flask routes below +@app.route("/") +def home(): + return render_template("index.html") + + +@app.route('/add') +def add_cafe(): + form = CafeForm() + if form.validate_on_submit(): + print("True") + # Exercise: + # Make the form write a new row into cafe-data.csv + # with if form.validate_on_submit() + return render_template('add.html', form=form) + + +@app.route('/cafes') +def cafes(): + with open('cafe-data.csv', newline='', encoding='utf-8') as csv_file: + csv_data = csv.reader(csv_file, delimiter=',') + list_of_rows = [] + for row in csv_data: + list_of_rows.append(row) + return render_template('cafes.html', cafes=list_of_rows) + + +if __name__ == '__main__': + app.run(debug=True) diff --git a/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/requirements.txt b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/requirements.txt new file mode 100644 index 0000000..dcd1607 --- /dev/null +++ b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/requirements.txt @@ -0,0 +1,5 @@ +Bootstrap_Flask==2.2.0 +Flask==2.3.2 +WTForms==3.0.1 +Flask_WTF==1.2.1 +Werkzeug==3.0.0 \ No newline at end of file diff --git a/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/static/css/styles.css b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/static/css/styles.css new file mode 100644 index 0000000..e167453 --- /dev/null +++ b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/static/css/styles.css @@ -0,0 +1,25 @@ +/* This CSS file will need to be added to the styling of +your web pages for the styles to be rendered. */ + +body { +background-color: #333; +color: white; +} + +a { + color: #ffc107; +} + +.jumbotron { + display: flex; + align-items: center; + margin: 0; + height: 100vh; + color: white; + background-color: #333; +} + +.space-above { + margin-top: 20px; + padding-top: 20px; +} diff --git a/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/templates/add.html b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/templates/add.html new file mode 100644 index 0000000..88a9a38 --- /dev/null +++ b/Visual Studio Code Projects/day-62-starting-files-coffee-and-wifi/templates/add.html @@ -0,0 +1,20 @@ +{% extends 'base.html' %} + +{% block title %}Add A New Cafe{% endblock %} + +{% block content %} +
Want to work in a cafe but need power and wifi?
+You've found the right place! Checkout my collection of cafes with data on power socket availability, wifi speed and coffee quality.
+ Show Me! +