47 lines
1.4 KiB
Python

from flask import Flask, render_template, request, redirect, url_for
import sqlite3
app = Flask(__name__)
DATABASE = 'guestbook.db'
def init_db():
conn = sqlite3.connect(DATABASE)
c = conn.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS guests (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL,
location TEXT NOT NULL,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
conn.commit()
conn.close()
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form.get('name')
email = request.form.get('email')
location = request.form.get('location')
if name and email and location:
conn = sqlite3.connect(DATABASE)
c = conn.cursor()
c.execute('INSERT INTO guests (name, email, location) VALUES (?, ?, ?)',
(name, email, location))
conn.commit()
conn.close()
return redirect(url_for('index'))
# Retrieve guest entries to display on the page.
conn = sqlite3.connect(DATABASE)
c = conn.cursor()
c.execute('SELECT name, email, location, timestamp FROM guests ORDER BY id DESC')
guests = c.fetchall()
conn.close()
return render_template('index.html', guests=guests)
if __name__ == '__main__':
init_db()
app.run(host='0.0.0.0', port=5000)