-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
145 lines (130 loc) · 5.87 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
from flask import Flask, render_template, request, redirect, url_for
import shutil
import mysql.connector
from datetime import datetime
app = Flask(__name__)
conn = mysql.connector.connect(
host = 'localhost',
user = 'root',
password = 'P@ssw0rd',
database = 'flaskapp'
)
@app.route('/', methods = ['GET', 'POST'])
def home():
cursor = conn.cursor()
cursor.execute("SELECT * FROM flaskapp_reviews order by date desc limit 15")
users = cursor.fetchall()
cursor.execute("SELECT Distinct Make FROM flaskapp_cars;")
makes = cursor.fetchall()
cursor.execute("SELECT Distinct Model FROM flaskapp_cars;")
models = cursor.fetchall()
if request.method == 'POST':
make = request.form['make']
model = request.form['model']
cursor = conn.cursor()
cursor.execute("SELECT *, CONCAT(Make,', ', Model, ', ',Year, '.') AS MMY FROM flaskapp_cars where make = %s OR model = %s", (make, model))
results = cursor.fetchall()
return render_template("recommendation.html", results=results)
return render_template('home.html',users = users, makes = makes, models = models)
@app.route('/review', methods = ['GET', 'POST'])
def review():
cursor = conn.cursor()
#no space after comma, otherwise tuncate when variable return from html
cursor.execute("SELECT Concat(Make,',',Model,',',Year,'.') as makes FROM flaskapp_cars;")
makes = cursor.fetchall()
if request.method == 'POST':
user = request.form['user']
if user == "":
user = "Anonymous"
car = request.form['make']
mmy = ", ".join(car.split(',')) # compiled with our format.
date = datetime.now()
rating = request.form['rating']
review = request.form['review']
cursor = conn.cursor()
cursor.execute('INSERT INTO flaskapp_reviews (User, Car, Date, Rating, Review) values(%s, %s, %s, %s, %s)', (user, mmy, date, rating, review))
conn.commit()
return redirect(url_for('home', message = "Review Added Successfully!"))
return render_template('add_review.html', makes = makes)
@app.route('/car', methods = ['GET', 'POST'])
def car():
if request.method == 'POST':
make = request.form['make']
model = request.form['model']
year = request.form['year']
cursor = conn.cursor()
cursor.execute('INSERT INTO flaskapp_cars (Make, Model, Year) values(%s,%s,%s)', (make, model, year))
conn.commit()
if 'photo' in request.files:
photo = request.files['photo']
if photo.filename != '':
photo.save('static/pictures/' + make +', '+ model + ', ' + year + '.jpg')
else:
shutil.copy('static/pictures/template.jpg', 'static/pictures/' + make +', '+ model + ', ' + year + '.jpg')
return redirect(url_for("home", message = "Car added"))
return render_template("add_car.html")
@app.route('/about')
def about():
return render_template("about.html")
@app.route('/view', methods = ['GET', 'POST'])
def view_cars():
cursor = conn.cursor()
cursor.execute("SELECT *, CONCAT(Make,', ', Model, ', ',Year, '.') AS MMY FROM flaskapp_cars")
cars = cursor.fetchall()
cursor.execute("SELECT Distinct Make FROM flaskapp_cars;")
makes = cursor.fetchall()
cursor.execute("SELECT Distinct Model FROM flaskapp_cars;")
models = cursor.fetchall()
cursor.execute("SELECT Distinct Year FROM flaskapp_cars;")
years = cursor.fetchall()
if request.method == "POST":
make = request.form['make']
model = request.form['model']
year = request.form['year']
cursor = conn.cursor()
cursor.execute("SELECT *, CONCAT(Make,', ', Model, ', ',Year, '.') AS MMY FROM flaskapp_cars where make = %s OR model = %s OR year = %s", (make, model, year))
results = cursor.fetchall()
return render_template("search_results.html", results=results)
return render_template('view_cars.html', cars = cars, makes = makes, models = models, years = years)
@app.route('/pictures/<int:id>', methods = ['GET', 'POST'])
def information(id):
cursor = conn.cursor()
cursor.execute("SELECT * FROM flaskapp_cars WHERE id = %s", (id,))
car = cursor.fetchone()
if request.method == 'POST':
user = request.form['user']
if user == "":
user = "Anonymous"
car = request.form['car']
date = datetime.now()
rating = request.form['rating']
review = request.form['review']
cursor = conn.cursor()
cursor.execute('INSERT INTO flaskapp_reviews (User, Car, Date, Rating, Review) values(%s, %s, %s, %s, %s)', (user, car, date, rating, review))
conn.commit()
return redirect(url_for('home', message = "Review Submitted"))
return render_template('car_info.html', car = car)
@app.route('/useful/<int:id>/<int:likenumber>', methods = ['GET'])
def thumbup(id,likenumber):
likenumber +=1
#if request.method == 'POST':
cursor = conn.cursor()
cursor.execute('UPDATE flaskapp_reviews set likecount = %s where id = %s', (likenumber, id,))
conn.commit()
# return redirect(url_for('home', message = "Review Submitted"))
return redirect(url_for('home', message = "Like counted"))
@app.route('/useful_one/<int:id>/<int:likenumber>/<MMY>', methods = ['GET'])
def thumbup_one(id,likenumber,MMY):
likenumber +=1
cursor = conn.cursor()
cursor.execute('UPDATE flaskapp_reviews set likecount = %s where id = %s', (likenumber, id,))
conn.commit()
return redirect(url_for('review_one', MMY=MMY))
@app.route('/review_all/<MMY>', methods = ['GET'])
def review_one(MMY):
cursor = conn.cursor()
cursor.execute("SELECT * FROM flaskapp_reviews WHERE car = %s", (MMY,))
reviews = cursor.fetchall()
return render_template('review_one.html', reviews = reviews, MMY = MMY)
if __name__ == "__main__":
app.run(debug = True)