initial re-commit to wipe commit histoy due to public repo
This commit is contained in:
		
							
								
								
									
										23
									
								
								backend/Dockerfile
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								backend/Dockerfile
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# syntax=docker/dockerfile:1.4
 | 
			
		||||
FROM python:3-alpine AS builder
 | 
			
		||||
 | 
			
		||||
WORKDIR /code
 | 
			
		||||
COPY requirements.txt /code
 | 
			
		||||
RUN target=/root/.cache/pip \
 | 
			
		||||
    pip3 install -r requirements.txt
 | 
			
		||||
 | 
			
		||||
COPY . .
 | 
			
		||||
 | 
			
		||||
ENV FLASK_APP app.py
 | 
			
		||||
 | 
			
		||||
# This might be scary to leave on
 | 
			
		||||
#ENV FLASK_ENV development
 | 
			
		||||
 | 
			
		||||
ENV FLASK_RUN_PORT 8000
 | 
			
		||||
ENV FLASK_RUN_HOST 0.0.0.0
 | 
			
		||||
RUN flask --version
 | 
			
		||||
 | 
			
		||||
EXPOSE 8000
 | 
			
		||||
 | 
			
		||||
CMD ["flask", "run"]
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										59
									
								
								backend/app.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								backend/app.py
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
import os
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from flask import Flask
 | 
			
		||||
import mysql.connector
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DBManager:
 | 
			
		||||
    def __init__(self, database='flask', host="db", user="flasku", password="flaskp"):
 | 
			
		||||
        envuser = os.getenv("MYSQL_USER")
 | 
			
		||||
        envpass = os.getenv("MYSQL_PASSWORD")
 | 
			
		||||
        #printf("DEBUG:" + envuser + envpass)
 | 
			
		||||
        self.connection = mysql.connector.connect(
 | 
			
		||||
            user=envuser, 
 | 
			
		||||
            #user=user, 
 | 
			
		||||
            password=envpass,
 | 
			
		||||
            #password=password,
 | 
			
		||||
            host=host, # name of the mysql service as set in the docker compose file
 | 
			
		||||
            database=database
 | 
			
		||||
            #auth_plugin='mysql_native_password'
 | 
			
		||||
        )
 | 
			
		||||
        self.cursor = self.connection.cursor()
 | 
			
		||||
    
 | 
			
		||||
    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, 'Database entry #%d'% i) for i in range (1,5)])
 | 
			
		||||
        self.connection.commit()
 | 
			
		||||
    
 | 
			
		||||
    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():
 | 
			
		||||
    global conn
 | 
			
		||||
    if not conn:
 | 
			
		||||
        conn = DBManager()
 | 
			
		||||
        conn.populate_db()
 | 
			
		||||
    rec = conn.query_titles()
 | 
			
		||||
 | 
			
		||||
    response = ''
 | 
			
		||||
    for c in rec:
 | 
			
		||||
        response = response  + '<div>   Log:  ' + c + '</div>'
 | 
			
		||||
 | 
			
		||||
    dt = datetime.now()
 | 
			
		||||
    dtFormatted = dt.strftime("%Y-%m-%d %H:%M")
 | 
			
		||||
    response = response + '<div>Delta: ' + dtFormatted + '</div>'
 | 
			
		||||
    return response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    server.run()
 | 
			
		||||
							
								
								
									
										3
									
								
								backend/requirements.txt
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								backend/requirements.txt
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
Flask==3.0.3
 | 
			
		||||
Werkzeug==3.0.3
 | 
			
		||||
mysql-connector-python
 | 
			
		||||
							
								
								
									
										2
									
								
								backend/requirements.txt.orig
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								backend/requirements.txt.orig
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
Flask==2.0.1
 | 
			
		||||
mysql-connector==2.2.9
 | 
			
		||||
		Reference in New Issue
	
	Block a user