Mar-20-2024, 03:12 PM
Hi,
i'm new to this whole thing. I'm trying to create a project. For the UI i want a webpage and i'm sitting on that page for longer then i wanted... The problem is not that i have much to do (that too) but i don't make any progress since i ran in a problem i can't resolve...
so i have a structure:
-Project
--UI
---static
----img
-----favicon.png
-----logo.png
----scripts
-----dropdown.js
----styles.css
---templates
----index.html
----start_desktop.html
----content
-----change_pw.html
----nav
-----nav.html
-----nav_admin.html
---app.py
---auth.py
---routes.py
---utils.py
The code of the app.py looks like this:
My question now is... WHY??? i can't find the error in my logic...
Can you please help me?
Thank you very much,
dissi :)
i'm new to this whole thing. I'm trying to create a project. For the UI i want a webpage and i'm sitting on that page for longer then i wanted... The problem is not that i have much to do (that too) but i don't make any progress since i ran in a problem i can't resolve...
so i have a structure:
-Project
--UI
---static
----img
-----favicon.png
-----logo.png
----scripts
-----dropdown.js
----styles.css
---templates
----index.html
----start_desktop.html
----content
-----change_pw.html
----nav
-----nav.html
-----nav_admin.html
---app.py
---auth.py
---routes.py
---utils.py
The code of the app.py looks like this:
from flask import Flask from flask_bcrypt import Bcrypt import secrets import sqlite3 import os app = Flask(__name__) app.secret_key = secrets.token_hex(16) bcrypt = Bcrypt(app) app.static_folder = 'static' app.template_folder = 'templates' def create_admin_user(): conn = sqlite3.connect('financepi.db') cursor = conn.cursor() cursor.execute( 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT, firstlogin BOOLEAN)') cursor.execute('SELECT COUNT(*) FROM users WHERE username=?', ('admin',)) if cursor.fetchone()[0] == 0: hashed_password = bcrypt.generate_password_hash('admin').decode('utf-8') cursor.execute('INSERT INTO users (username, password, firstlogin) VALUES (?, ?, ?)', ('admin', hashed_password, 1)) conn.commit() conn.close() def create_db(): if not os.path.exists('financepi.db'): create_admin_user() if __name__ == '__main__': create_db() app.run(debug=True)The routes looks like this:
from flask import render_template, request, redirect, url_for, session from app import app from auth import login, logout, check_admin from utils import create_user, change_password @app.route('/') def index(): return render_template('index.html') auth.py looks like: from flask import render_template, redirect, url_for, session from app import bcrypt import sqlite3 def login(username, password): if check_login(username, password): session['username'] = username session['firstlogin'] = check_first_login(username) return redirect(url_for('start')) else: return render_template('index.html', error=True) def logout(): session.clear() return redirect(url_for('index')) def check_admin(): if 'username' in session: username = session['username'] if username == 'admin': return True return False # Funktionen für die Authentifizierung def check_login(username, password): conn = sqlite3.connect('financepi.db') cursor = conn.cursor() cursor.execute('SELECT password FROM users WHERE username = ?', (username,)) user = cursor.fetchone() conn.close() if user and bcrypt.check_password_hash(user[0], password): return True else: return False def check_first_login(username): conn = sqlite3.connect('financepi.db') cursor = conn.cursor() cursor.execute('SELECT firstlogin FROM users WHERE username = ?', (username,)) first_login = cursor.fetchone()[0] conn.close() return first_login == 1now when i want to load the page i get an error 404.
My question now is... WHY??? i can't find the error in my logic...
Can you please help me?
Thank you very much,
dissi :)