82 lines
2.1 KiB
Python
82 lines
2.1 KiB
Python
import flask
|
|
from flask import Flask, render_template, request, session
|
|
import os
|
|
import traceback
|
|
import json
|
|
import random
|
|
import datetime
|
|
|
|
from src.db_utils import create_db_session, User
|
|
from src.weather_api import get_weather
|
|
|
|
# Inicjalizacja web app
|
|
app = flask.Flask(__name__,
|
|
template_folder='templates',
|
|
static_folder='static')
|
|
|
|
app.secret_key = os.urandom(24)
|
|
|
|
@app.route('/')
|
|
def test():
|
|
return "<h1>To jesty test aplikacji!</h1>"
|
|
|
|
# Przekazywanie prostych parametrów...
|
|
@app.route('/hello/<name>')
|
|
def hello(name):
|
|
return "<h1>Hello, %s!</h1>" % str(name)
|
|
|
|
# Proste logowanie zdarzeń...
|
|
plik_logu = "logi.txt"
|
|
@app.route('/logi/<name>')
|
|
def logi(name):
|
|
with open(plik_logu, 'a') as file:
|
|
now = datetime.datetime.now()
|
|
file.write(now.isoformat() + ": odwiedziny przez " + name + "\n")
|
|
|
|
return "<h1>Hello z logiem, %s!</h1>" % name
|
|
|
|
# Obsługa sesji...
|
|
@app.route("/zaloguj")
|
|
def zaloguj():
|
|
session["zalogowany"] = True
|
|
if session["zalogowany"]:
|
|
return render_template("frontpage.html")
|
|
else:
|
|
return "Użytkownik niezalogowany!"
|
|
|
|
@app.route("/wyloguj")
|
|
def wyloguj():
|
|
session["zalogowany"] = False
|
|
return "Użytkownik wylogowany!"
|
|
|
|
@app.route("/logowanie")
|
|
def logowanie():
|
|
return render_template("logowanie.html")
|
|
|
|
@app.route("/login", methods=["POST"])
|
|
def login():
|
|
# Twózs obiekt sesji BD...
|
|
sqlsession = create_db_session()
|
|
|
|
# Zdefiniuj zapytanie do BD...
|
|
query = sqlsession.query(User).filter(User.username == request.form["username"])
|
|
|
|
# Zaadaj zapytanie...
|
|
user = query.first()
|
|
|
|
result = "<h1>Login</h1>"
|
|
if request.form["username"]:
|
|
result += "<p>" + request.form["username"] + "</p>\n"
|
|
if request.form["password"]:
|
|
result += "<p>" + request.form["password"] + "</p>\n"
|
|
|
|
return result
|
|
|
|
@app.route("/pogoda")
|
|
def pogoda():
|
|
temp, humidity, type, rain = get_weather()
|
|
|
|
return render_template("pogoda.html", temp=temp, humid=humidity, weathertype=type, rain=rain)
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=False) |