modified: app.py

modified:   dbWrite.py
	modified:   main.py
	modified:   routes/_search.py
Remove login_manager code
Correct some DB lookups
This commit is contained in:
Jonny Ervine 2020-02-28 03:39:02 +00:00
parent 627a08530b
commit d764caa768
4 changed files with 27 additions and 59 deletions

3
app.py
View File

@ -3,13 +3,10 @@ import random
import string import string
from flask import Flask from flask import Flask
from flask_bootstrap import Bootstrap from flask_bootstrap import Bootstrap
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user, login_manager
app = Flask(__name__) app = Flask(__name__)
app.secret_key = "4pFwRNNXs+xQSOEaHrq4iSBwl+mq1UTdRuxqhM+RQpo=" app.secret_key = "4pFwRNNXs+xQSOEaHrq4iSBwl+mq1UTdRuxqhM+RQpo="
Bootstrap(app) Bootstrap(app)
login_manager = LoginManager()
login_manager.init_app(app)
def randomUrlSuffix(stringLength=6): def randomUrlSuffix(stringLength=6):
lettersAndDigits = string.ascii_letters + string.digits lettersAndDigits = string.ascii_letters + string.digits

View File

@ -13,6 +13,7 @@ CLOUDSQL_PASSWORD = "P8P1YopMlwg8TxhE"
CLOUDSQL_WRITE_PASSWORD = "1URYcxXXlQ6xOWgj" CLOUDSQL_WRITE_PASSWORD = "1URYcxXXlQ6xOWgj"
CLOUDSQL_READ_PASSWORD = "o4GWrbbkBKy3oR6u" CLOUDSQL_READ_PASSWORD = "o4GWrbbkBKy3oR6u"
CLOUDSQL_DATABASE = "2019_hockeyResults" CLOUDSQL_DATABASE = "2019_hockeyResults"
LOCAL_DATABASE = "hockeyResults2019"
CLOUDSQL_DATABASE_STATIC = "hockeyResults" CLOUDSQL_DATABASE_STATIC = "hockeyResults"
CLOUDSQL_CHARSET = "utf8" CLOUDSQL_CHARSET = "utf8"
@ -36,7 +37,7 @@ def write_cloudsql():
# #
else: else:
# db = MySQLdb.connect(host='db.ipa.champion', user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET) # db = MySQLdb.connect(host='db.ipa.champion', user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET)
db = pymysql.connect(host='db.ipa.champion', user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET) db = pymysql.connect(host='db.ipa.champion', user=CLOUDSQL_WRITE_USER, passwd=CLOUDSQL_WRITE_PASSWORD, db=LOCAL_DATABASE, charset=CLOUDSQL_CHARSET)
return db return db
def write_cloudsql_static(): def write_cloudsql_static():
@ -80,7 +81,7 @@ def read_cloudsql():
# #
else: else:
# db = MySQLdb.connect(host='db.ipa.champion', user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET) # db = MySQLdb.connect(host='db.ipa.champion', user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET)
db = pymysql.connect(host='db.ipa.champion', user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=CLOUDSQL_DATABASE, charset=CLOUDSQL_CHARSET) db = pymysql.connect(host='db.ipa.champion', user=CLOUDSQL_READ_USER, passwd=CLOUDSQL_READ_PASSWORD, db=LOCAL_DATABASE, charset=CLOUDSQL_CHARSET)
return db return db
def read_cloudsql_static(): def read_cloudsql_static():

30
main.py
View File

@ -10,7 +10,6 @@ from app import app
from flask import Flask, flash, render_template, request, redirect, url_for from flask import Flask, flash, render_template, request, redirect, url_for
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from flask_bootstrap import Bootstrap from flask_bootstrap import Bootstrap
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user
from wtforms import StringField, PasswordField, BooleanField from wtforms import StringField, PasswordField, BooleanField
from wtforms.fields.html5 import DateField from wtforms.fields.html5 import DateField
from wtforms.validators import InputRequired, Email, Length from wtforms.validators import InputRequired, Email, Length
@ -20,35 +19,6 @@ from routes import *
app.register_blueprint(routes) app.register_blueprint(routes)
login_manager = LoginManager()
class User(UserMixin):
# proxy for a database of users
user_database = {"JohnDoe": ("JohnDoe", "John"), "JaneDoe": ("JaneDoe", "Jane")}
def __init__(self, username, password):
self.id = username
self.password = password
@classmethod
def get(cls,id):
return cls.user_database.get(id)
@login_manager.request_loader
def load_user(request):
token = request.headers.get('Authorization')
if token is None:
token = request.args.get('token')
if token is not None:
username,password = token.split(":") # naive token
user_entry = User.get(username)
if (user_entry is not None):
user = User(user_entry[0],user_entry[1])
if (user.password == password):
return user
return None
@app.route('/hkfc-d/vote-chart', methods=['GET', 'POST']) @app.route('/hkfc-d/vote-chart', methods=['GET', 'POST'])
def hkfc_d_vote_chart(): def hkfc_d_vote_chart():

View File

@ -13,8 +13,8 @@ from datetime import date
def search(): def search():
sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub" sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub"
sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings" sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings"
clubs = sql_read(sql) clubs = sql_read_static(sql)
settings = sql_read(sql2) settings = sql_read_static(sql2)
form = searchForm() form = searchForm()
form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs] form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs]
clubLogo = settings[0]['oppoLogo'] clubLogo = settings[0]['oppoLogo']
@ -44,8 +44,8 @@ def searchTeam():
def playerRecords(): def playerRecords():
sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub" sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub"
sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings" sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings"
clubs = sql_read(sql) clubs = sql_read_static(sql)
settings = sql_read(sql2) settings = sql_read_static(sql2)
form = playerRecordsForm() form = playerRecordsForm()
form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs] form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs]
clubLogo = settings[0]['oppoLogo'] clubLogo = settings[0]['oppoLogo']
@ -60,12 +60,12 @@ def playerRecordSearchResults():
_team = request.form['teamName'] _team = request.form['teamName']
lookup_table = _club.lower() + _team lookup_table = _club.lower() + _team
if _club and _team and request.method == 'POST': if _club and _team and request.method == 'POST':
sql = "SELECT * FROM _" + lookup_table + " ORDER BY playerNumber" sql = "SELECT * FROM _" + _season + "_" + lookup_table + " ORDER BY playerNumber"
sql2 = "SHOW COLUMNS FROM _" + lookup_table + "" sql2 = "SHOW COLUMNS FROM _" + _season + "_" + lookup_table + ""
sql3 = "SELECT matchNumber, matchHomeClub, matchHomeTeam, matchAwayClub, matchAwayTeam FROM _mensResults WHERE (matchHomeClub='" + _club + "' AND matchHomeTeam='" + _team + "') OR (matchAwayClub='" + _club + "' AND matchAwayTeam='" + _team + "')" sql3 = "SELECT matchNumber, matchHomeClub, matchHomeTeam, matchAwayClub, matchAwayTeam FROM _" + _season + "_mensResults WHERE (matchHomeClub='" + _club + "' AND matchHomeTeam='" + _team + "') OR (matchAwayClub='" + _club + "' AND matchAwayTeam='" + _team + "')"
rows = sql_read(sql) rows = sql_read_static(sql)
columns = sql_read(sql2) columns = sql_read_static(sql2)
matches = sql_read(sql3) matches = sql_read_static(sql3)
for match in matches: for match in matches:
matchNumbersList.append(str(match['matchNumber'])) matchNumbersList.append(str(match['matchNumber']))
if match['matchHomeClub'] == _club: if match['matchHomeClub'] == _club:
@ -81,8 +81,8 @@ def playerRecordSearchResults():
def teamRecords(): def teamRecords():
sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub" sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub"
sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings" sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings"
clubs = sql_read(sql) clubs = sql_read_static(sql)
settings = sql_read(sql2) settings = sql_read_static(sql2)
form = teamRecordsForm() form = teamRecordsForm()
form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs] form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs]
clubLogo = settings[0]['oppoLogo'] clubLogo = settings[0]['oppoLogo']
@ -95,9 +95,9 @@ def teamRecordResults():
_team = request.form['teamName'] _team = request.form['teamName']
lookup_table = _club.lower() + _team lookup_table = _club.lower() + _team
if _club and _team and request.method == 'POST': if _club and _team and request.method == 'POST':
sql = "SELECT * FROM _record_" + lookup_table + " ORDER BY opposition" sql = "SELECT * FROM _" + _season + "_record_" + lookup_table + " ORDER BY opposition"
print(sql) print(sql)
rows = sql_read(sql) rows = sql_read_static(sql)
table = teamResults(rows) table = teamResults(rows)
table.border = True table.border = True
table.classes = ['table-striped', 'table-condensed', 'table-hover'] table.classes = ['table-striped', 'table-condensed', 'table-hover']
@ -110,8 +110,8 @@ def teamRecordResults():
def clubPlayingRecords(): def clubPlayingRecords():
sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub" sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub"
sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings" sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings"
clubs = sql_read(sql) clubs = sql_read_static(sql)
settings = sql_read(sql2) settings = sql_read_static(sql2)
form = clubPlayingRecordsForm() form = clubPlayingRecordsForm()
form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs] form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs]
clubLogo = settings[0]['oppoLogo'] clubLogo = settings[0]['oppoLogo']
@ -122,10 +122,10 @@ def clubPlayingRecordRearchResults():
_season = request.form['season'] _season = request.form['season']
_club = request.form['clubName'] _club = request.form['clubName']
if _club and request.method == 'POST': if _club and request.method == 'POST':
sql = "SELECT * FROM _playerRecord_" + _club.lower() + " ORDER BY playerNumber" sql = "SELECT * FROM _" + _season + "_playerRecord_" + _club.lower() + " ORDER BY playerNumber"
sql2 = "SHOW COLUMNS FROM __playerRecord_" + _club.lower() + "" sql2 = "SHOW COLUMNS FROM _" + _season + "_playerRecord_" + _club.lower() + ""
rows = sql_read(sql) rows = sql_read_static(sql)
columns = sql_read(sql2) columns = sql_read_static(sql2)
return render_template('_clubPlayingRecordResults.html', rows=rows, columns=columns) return render_template('_clubPlayingRecordResults.html', rows=rows, columns=columns)
else: else:
return 'Invalid search data entered' return 'Invalid search data entered'
@ -135,8 +135,8 @@ def clubPlayingRecordRearchResults():
def playerCheck(): def playerCheck():
sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub" sql = "SELECT hockeyClub FROM mensHockeyClubs ORDER BY hockeyClub"
sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings" sql2 = "SELECT nextClub, oppoLogo FROM hkfcDAdminSettings"
clubs = sql_read(sql) clubs = sql_read_static(sql)
settings = sql_read(sql2) settings = sql_read_static(sql2)
form = clubPlayingRecordsForm() form = clubPlayingRecordsForm()
form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs] form.clubName.choices = [(name['hockeyClub'], name['hockeyClub']) for name in clubs]
clubLogo = settings[0]['oppoLogo'] clubLogo = settings[0]['oppoLogo']
@ -150,8 +150,8 @@ def playerCheckResults():
if _club and request.method == 'POST': if _club and request.method == 'POST':
sql = "SELECT * FROM _playerRecord_" + _club.lower() + " ORDER BY playerNumber" sql = "SELECT * FROM _playerRecord_" + _club.lower() + " ORDER BY playerNumber"
sql2 = "SHOW COLUMNS FROM _playerRecord_" + _club.lower() + "" sql2 = "SHOW COLUMNS FROM _playerRecord_" + _club.lower() + ""
rows = sql_read(sql) rows = sql_read_static(sql)
columns = sql_read(sql2) columns = sql_read_static(sql2)
for row in rows: for row in rows:
has_played = 0 has_played = 0
for column in columns: for column in columns: