Test2
This commit is contained in:
17
FlaskWebProject/FlaskWebProject/routes.py
Normal file
17
FlaskWebProject/FlaskWebProject/routes.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from flask import render_template, request, make_response
|
||||
from FlaskWebProject import app
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
# Odczyt ciasteczka "darkMode" <20> domy<6D>lnie "disabled"
|
||||
dark_mode = request.cookies.get('darkMode', 'disabled')
|
||||
return render_template('index.html', dark_mode=dark_mode)
|
||||
|
||||
@app.route('/toggle_dark_mode')
|
||||
def toggle_dark_mode():
|
||||
# Prze<7A><65>cz tryb i zapisz w ciasteczku
|
||||
dark_mode = request.cookies.get('darkMode', 'disabled')
|
||||
new_mode = 'enabled' if dark_mode == 'disabled' else 'disabled'
|
||||
response = make_response("OK")
|
||||
response.set_cookie('darkMode', new_mode, max_age=31536000) # Ustawienie ciasteczka na 1 rok
|
||||
return response
|
||||
BIN
FlaskWebProject/FlaskWebProject/static/lewandowski.jpg
Normal file
BIN
FlaskWebProject/FlaskWebProject/static/lewandowski.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
8
FlaskWebProject/FlaskWebProject/static/script.js
Normal file
8
FlaskWebProject/FlaskWebProject/static/script.js
Normal file
@@ -0,0 +1,8 @@
|
||||
// Funkcja prze<7A><65>czaj<61>ca tryb ciemny
|
||||
function toggleDarkMode() {
|
||||
const body = document.body;
|
||||
const isDarkMode = body.classList.toggle("dark");
|
||||
|
||||
// Zapisuje stan trybu ciemnego w localStorage
|
||||
localStorage.setItem("darkMode", isDarkMode ? "enabled" : "disabled");
|
||||
}
|
||||
62
FlaskWebProject/FlaskWebProject/static/style.css
Normal file
62
FlaskWebProject/FlaskWebProject/static/style.css
Normal file
@@ -0,0 +1,62 @@
|
||||
body {
|
||||
font-family: 'Arial', sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #f7f7f7;
|
||||
color: #222;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
nav {
|
||||
background: #d32f2f;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
color: white;
|
||||
}
|
||||
|
||||
nav a, nav button {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.photo {
|
||||
width: 200px;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
/* Dark Mode */
|
||||
body.dark-mode {
|
||||
background-color: #121212;
|
||||
color: white;
|
||||
}
|
||||
|
||||
body.dark-mode nav {
|
||||
background: #333;
|
||||
}
|
||||
|
||||
body.dark-mode table {
|
||||
color: #e0e0e0;
|
||||
}
|
||||
42
FlaskWebProject/FlaskWebProject/templates/base.html
Normal file
42
FlaskWebProject/FlaskWebProject/templates/base.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}Lewandowski Stats{% endblock %}</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<a href="/">🏠 Strona główna</a> |
|
||||
<a href="/mecze">📅 Mecze</a> |
|
||||
<a href="/statystyki">📊 Statystyki</a> |
|
||||
<button id="theme-toggle" onclick="toggleTheme()">🌙 / 🌞</button>
|
||||
</nav>
|
||||
|
||||
<header>
|
||||
<img src="{{ url_for('static', filename='lewandowski.jpg') }}" alt="Robert Lewandowski" style="width: 200px; height: auto; border-radius: 50%;">
|
||||
<h1>Statystyki Roberta Lewandowskiego</h1>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
|
||||
<script>
|
||||
function toggleTheme() {
|
||||
const currentMode = document.body.classList.contains('dark-mode') ? 'dark' : 'light';
|
||||
const newMode = currentMode === 'light' ? 'dark' : 'light';
|
||||
document.body.classList.toggle('dark-mode');
|
||||
localStorage.setItem('theme', newMode);
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
const savedTheme = localStorage.getItem('theme');
|
||||
if (savedTheme === 'dark') {
|
||||
document.body.classList.add('dark-mode');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
23
FlaskWebProject/FlaskWebProject/templates/matches.html
Normal file
23
FlaskWebProject/FlaskWebProject/templates/matches.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block title %}Historia meczów{% endblock %}
|
||||
{% block content %}
|
||||
<h2>Historia ostatnich meczów</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Data</th>
|
||||
<th>Przeciwnik</th>
|
||||
<th>Gole</th>
|
||||
<th>Asysty</th>
|
||||
<th>Minuty</th>
|
||||
</tr>
|
||||
{% for match in matches %}
|
||||
<tr>
|
||||
<td>{{ match.date }}</td>
|
||||
<td>{{ match.opponent }}</td>
|
||||
<td>{{ match.goals }}</td>
|
||||
<td>{{ match.assists }}</td>
|
||||
<td>{{ match.minutes }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
12
FlaskWebProject/FlaskWebProject/templates/stats.html
Normal file
12
FlaskWebProject/FlaskWebProject/templates/stats.html
Normal file
@@ -0,0 +1,12 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Statystyki{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Statystyki Roberta Lewandowskiego</h2>
|
||||
<ul>
|
||||
<li>Gole: {{ stats.goals }}</li>
|
||||
<li>Asysty: {{ stats.assists }}</li>
|
||||
<li>Mecze: {{ stats.matches }}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user