import database_connector from flask import Flask, request, render_template, session, redirect, url_for, flash import datetime import secrets """ pas de locatie id aan zoals weergeven in moderator scherm """ locatieid = 1 """ test var, het het nogmaal gesproken op False """ debug = False """ database objecten, om minder te typen """ conn = database_connector.conn cur = database_connector.cur """ stel flask in """ app = Flask(__name__) """ als debug op true is een vaste secret key gebruiken, dit is zodat we niet elke keer in hoefen te loggen na een code wijziging. Maar in productie elke start een nieuwe token genereren """ if debug == True: app.secret_key = 'jdndhsyh83r90hfeqwf' # dit is om live te testen else: app.secret_key = secrets.token_hex(32) def func_getlocaties(locatieid): cur.execute('SELECT * FROM locaties WHERE locatieid = (%s)', [locatieid]) return cur.fetchall()[0] def func_invoerdatabase(bericht, naamposter): date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") try: QUERY = 'INSERT INTO berichten(bericht, datumontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s)' DATA = (bericht, date, locatieid, naamposter, '1') cur.execute(QUERY, DATA) conn.commit() return True except: return False def func_checkinvoer(bericht, naamposter): if len(bericht) > 140: return False elif len(bericht) < 16: return False if len(naamposter) > 32: return False elif len(naamposter) < 3: return False return True @app.route('/') def root(): return redirect(url_for('zuil')) @app.route('/zuil') def zuil(): return render_template('zuil.html', locatie=func_getlocaties(locatieid), dank=False, datafout=False, invoerfout=False) @app.route('/zuil/post', methods=['POST']) def zuil_post(): if func_checkinvoer(request.form['bericht'], request.form['naam']): if func_invoerdatabase(request.form['bericht'], request.form['naam']): return render_template('zuil.html', dank=True, datafout=False, invoerfout=False) else: return render_template('zuil.html', dank=False, datafout=True, invoerfout=False) else: return render_template('zuil.html', dank=False, datafout=False, invoerfout=True) if __name__ == "__main__": app.run('0.0.0.0', port=5000, debug=debug)