Partial integration of database.
This commit is contained in:
parent
344ad4e47b
commit
1ae10296fc
3 changed files with 42 additions and 5 deletions
|
@ -1,7 +1,9 @@
|
|||
try:
|
||||
from classUwuCounter import UwuCounter
|
||||
from databaseMethods import create_user
|
||||
except:
|
||||
from .classUwuCounter import UwuCounter
|
||||
from .databaseMethods import create_user
|
||||
from flask import Flask, Response
|
||||
from flask_login import LoginManager, UserMixin, login_required
|
||||
|
||||
|
@ -16,6 +18,7 @@ class User(UserMixin):
|
|||
self.id = username
|
||||
self.password = password
|
||||
self.count = UwuCounter(initialCount)
|
||||
create_user(0, username, password, 0)
|
||||
|
||||
@classmethod
|
||||
def get(cls, id):
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean
|
||||
from sqlalchemy import create_engine, insert, update, select, MetaData, Table, Column, Integer, String, Boolean
|
||||
from os import environ
|
||||
|
||||
pg_pass_file = open(environ['POSTGRES_PASSWORD_FILE'])
|
||||
pg_pass = pg_pass_file.readline().strip('\n')
|
||||
engine = create_engine(
|
||||
f"postgresql+psycopg2://{environ['POSTGRES_USER']}:{pg_pass}@{environ['POSTGRES_HOST']}:{environ['POSTGRES_PORT']}/{environ['POSTGRES_DB']}")
|
||||
conn = engine.connect()
|
||||
md = MetaData()
|
||||
|
||||
|
||||
def initialize_database():
|
||||
conn = engine.connect()
|
||||
md = MetaData()
|
||||
users = Table('users', md,
|
||||
Column('id', Integer()),
|
||||
Column('name', String(255)),
|
||||
|
@ -19,3 +19,33 @@ def initialize_database():
|
|||
md.create_all(engine)
|
||||
except Exception as e:
|
||||
print(f'{e}')
|
||||
|
||||
|
||||
def create_user(idn, name, password, count):
|
||||
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||
query = insert(users)
|
||||
values = [{
|
||||
'id': idn,
|
||||
'name': name,
|
||||
'password': password,
|
||||
'count': count
|
||||
}]
|
||||
output = conn.execute(query, values)
|
||||
|
||||
|
||||
def get_table():
|
||||
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||
return users.columns.keys()
|
||||
|
||||
|
||||
def get_count(user):
|
||||
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||
query = select([users.columns.count]).where(users.columns.name == user)
|
||||
output = conn.execute(query)
|
||||
return output.fetchone()[0]
|
||||
|
||||
|
||||
def update_count(user, count):
|
||||
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||
query = update(users).values(count=count).where(users.columns.name == user)
|
||||
return conn.execute(query)
|
||||
|
|
|
@ -2,10 +2,12 @@ try:
|
|||
from .lib.helpers import get_static_paths, get_content_text
|
||||
from .lib.classUser import User
|
||||
from .lib.classUwuCounter import UwuCounter
|
||||
from .lib.databaseMethods import get_table, get_count, update_count
|
||||
except:
|
||||
from lib.classUser import User
|
||||
from lib.helpers import get_static_paths, get_content_text
|
||||
from lib.classUwuCounter import UwuCounter
|
||||
from lib.databaseMethods import get_table, get_count, update_count
|
||||
from . import app
|
||||
from flask import Flask, render_template, redirect, url_for, request, flash
|
||||
from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user
|
||||
|
@ -44,7 +46,9 @@ def get_curval(username):
|
|||
error = ''
|
||||
if(request.method == 'GET'):
|
||||
try:
|
||||
return f'{User.user_database[username][2].curval}'
|
||||
new_count = f'{User.user_database[username][2].curval}'
|
||||
update_count(username, new_count)
|
||||
return new_count
|
||||
except Exception as e:
|
||||
error = f'{e}'
|
||||
return f'ERROR: {error}'
|
||||
|
@ -55,7 +59,7 @@ def user_page(username):
|
|||
error = ''
|
||||
if(request.method == 'GET'):
|
||||
if(username in User.user_database.keys()):
|
||||
return render_template('user/index.html', this_user=username, user_curval=str(User.user_database[username][2].curval), static_paths=get_static_paths(), content_text=get_content_text())
|
||||
return render_template('user/index.html', this_user=username, user_curval=str(get_count(username)), static_paths=get_static_paths(), content_text=get_content_text())
|
||||
else:
|
||||
error = 'User doesn\'t exist.'
|
||||
elif(request.method == 'POST'):
|
||||
|
|
Reference in a new issue