ventilaar
/
twitter_zuil
Archived
1
Fork 0
This repository has been archived on 2021-06-10. You can view files and clone it, but cannot push or open issues or pull requests.
twitter_zuil/zuil_web.py

90 lines
2.3 KiB
Python

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)