source: pt123/main.py@ 5496375

main
Last change on this file since 5496375 was 5496375, checked in by Damjan <sepetovskidamjan@…>, 11 days ago

Initial commit

  • Property mode set to 100644
File size: 2.6 KB
Line 
1from flask import Flask, render_template, request
2import psycopg2
3from psycopg2.extras import RealDictCursor
4
5# Flask app setup
6app = Flask(__name__)
7
8# Database connection setup
9DB_CONFIG = {
10 "dbname": "db_202425z_va_prj_personalteacher",
11 "user": "db_202425z_va_prj_personalteacher_owner",
12 "password": "5ad8d6cf55cc",
13 "host": "localhost",
14 "port": 9999,
15}
16
17# Function to get all subjects
18def get_subjects():
19 try:
20 with psycopg2.connect(**DB_CONFIG) as conn:
21 with conn.cursor(cursor_factory=RealDictCursor) as cursor:
22 cursor.execute("SELECT * FROM Subject")
23 return cursor.fetchall()
24 except Exception as e:
25 print("Database error:", e)
26 return []
27
28
29def get_teachers(from_date=None, to_date=None):
30 try:
31 with psycopg2.connect(**DB_CONFIG) as conn:
32 with conn.cursor(cursor_factory=RealDictCursor) as cursor:
33 # Base query
34 query = "SELECT * FROM Teacher join Public_user on Teacher.id_user = Public_user.id_user"
35 conditions = []
36
37 # Add conditions based on the dates
38 if from_date:
39 conditions.append(f"hire_date >= '{from_date}'")
40
41 # If there are any conditions, append them to the query
42 if conditions:
43 query += " WHERE " + " AND ".join(conditions)
44
45 cursor.execute(query)
46 return cursor.fetchall()
47 except Exception as e:
48 print("Database error:", e)
49 return []
50def get_users():
51 try:
52 with psycopg2.connect(**DB_CONFIG) as conn:
53 with conn.cursor(cursor_factory=RealDictCursor) as cursor:
54 cursor.execute("SELECT * FROM Public_user")
55 result = cursor.fetchall()
56 return result
57 except Exception as e:
58 print("Database error:", e)
59 return []
60
61
62@app.route("/")
63def index():
64 #users = get_users()
65 return render_template("index.html")
66
67
68@app.route("/subjects")
69def subjects():
70 subjects = get_subjects()
71 return render_template("subjects.html", subjects=subjects)
72
73
74@app.route("/teachers", methods=["GET"])
75def teachers():
76 # Get date filters from the request
77 from_date = request.args.get("from_date")
78
79 # Fetch filtered teachers data
80 teachers = get_teachers(from_date)
81
82 return render_template("teachers.html", teachers=teachers)
83@app.route("/users")
84def users():
85 users = get_users()
86 return render_template("users.html", users=users)
87
88
89if __name__ == "__main__":
90 app.run(port=3000, debug=True)
Note: See TracBrowser for help on using the repository browser.