Improved flask backend
This commit is contained in:
parent
dcac9e0722
commit
6c8754131d
@ -1,42 +1,51 @@
|
||||
import os
|
||||
import time
|
||||
from flask import Flask
|
||||
import mysql.connector
|
||||
|
||||
passfile = open('/run/secrets/db-password', 'r')
|
||||
|
||||
#give db some time to start
|
||||
time.sleep(5)
|
||||
|
||||
#connect to db
|
||||
conn = mysql.connector.connect(
|
||||
user='root',
|
||||
password=passfile.read(),
|
||||
host='db', # name of the mysql service as set in the docker-compose file
|
||||
database='example',
|
||||
class DBManager:
|
||||
def __init__(self, database='example', host="db", user="root", password_file=None):
|
||||
pf = open(password_file, 'r')
|
||||
self.connection = mysql.connector.connect(
|
||||
user=user,
|
||||
password=pf.read(),
|
||||
host=host, # name of the mysql service as set in the docker-compose file
|
||||
database=database,
|
||||
auth_plugin='mysql_native_password'
|
||||
)
|
||||
)
|
||||
pf.close()
|
||||
self.cursor = self.connection.cursor()
|
||||
|
||||
passfile.close()
|
||||
# populate db
|
||||
cursor = conn.cursor()
|
||||
def prepare_db():
|
||||
cursor.execute('DROP TABLE IF EXISTS blog')
|
||||
cursor.execute('CREATE TABLE blog (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255))')
|
||||
cursor.executemany('INSERT INTO blog (id, title) VALUES (%s, %s);', [(i, 'Blog post #%d'% i) for i in range (1,5)])
|
||||
conn.commit()
|
||||
prepare_db()
|
||||
def populate_db(self):
|
||||
self.cursor.execute('DROP TABLE IF EXISTS blog')
|
||||
self.cursor.execute('CREATE TABLE blog (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255))')
|
||||
self.cursor.executemany('INSERT INTO blog (id, title) VALUES (%s, %s);', [(i, 'Blog post #%d'% i) for i in range (1,5)])
|
||||
self.connection.commit()
|
||||
|
||||
# server
|
||||
app = Flask(__name__)
|
||||
@app.route('/')
|
||||
def query_titles(self):
|
||||
self.cursor.execute('SELECT title FROM blog')
|
||||
rec = []
|
||||
for c in self.cursor:
|
||||
rec.append(c[0])
|
||||
return rec
|
||||
|
||||
|
||||
server = Flask(__name__)
|
||||
conn = None
|
||||
|
||||
@server.route('/')
|
||||
def listBlog():
|
||||
cursor.execute('SELECT title FROM blog')
|
||||
global conn
|
||||
if not conn:
|
||||
conn = DBManager(password_file='/run/secrets/db-password')
|
||||
conn.populate_db()
|
||||
rec = conn.query_titles()
|
||||
|
||||
response = ''
|
||||
for c in cursor:
|
||||
response = response + '<div>' + c[0] + '</div>'
|
||||
for c in rec:
|
||||
response = response + '<div> Hello ' + c + '</div>'
|
||||
return response
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run()
|
||||
server.run()
|
||||
|
Loading…
Reference in New Issue
Block a user