From a5733dfa048f41d69c8895b48b8f433209e6cf8a Mon Sep 17 00:00:00 2001 From: Karel Z Date: Thu, 12 Jan 2023 14:12:02 +0100 Subject: [PATCH] hodina --- .vscode/settings.json | 3 +- SQLlite.db | Bin 20480 -> 20480 bytes templates/zkracovac.html | 8 +- webface.py | 164 +++++++++++++++++++++++++-------------- 4 files changed, 113 insertions(+), 62 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f97bb1..42aa686 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,6 @@ "emmet.includeLanguages": { "jinja-html": "html", "vue-html": "html" - } + }, + "python.formatting.provider": "black" } \ No newline at end of file diff --git a/SQLlite.db b/SQLlite.db index 8ae0e1f5ed67e1b4b632ae4504b62edd047771fd..aef62cc91c44dbe4a39c3609da019c1939d87493 100644 GIT binary patch delta 545 zcmZozz}T>Wae_1>|3n#QM*fWnOZde&`T7|6ukf$oZ{d&NH{j>sd%(AYuWz%UKnY*H z1}BTSH-m+Ti)lzkNl8JmmA-ySYDrOMv0ie1u6{vIVx=yGudl|zBJR%M;T&b`3{zQL zn3GwOnpBiuUYuH_mtT~wpOT}m#tu^F;^AfDiC-NXP+dKPOR%G#4}OKLAOlT<{hWjF zs?%a&5%*{CHE_2u2dM-4#L&oG&j1JwtxQdfjSTgxvWpUv^UD&G_0^a`W;%t|TLgsS zHB^lWq|n?q+{p~DIxR+!~j_n%PAD-EoKl4>~JOy NW^qoi(-s*h003?wnScNQ delta 48 vcmZozz}T>Wae_1>+e8^>Mz)O!OZb@>1U3sgJma4@L4=Kq0SMsSMFt80NTm%h diff --git a/templates/zkracovac.html b/templates/zkracovac.html index cbff731..aeeadc6 100644 --- a/templates/zkracovac.html +++ b/templates/zkracovac.html @@ -6,10 +6,16 @@

zkracovac URL

+ +{% if new %} +

zkratka: {{new}}

+ +{% endif %} +

- Zadej URL: + Zadej URL:

diff --git a/webface.py b/webface.py index d69bd40..d5d2080 100644 --- a/webface.py +++ b/webface.py @@ -3,6 +3,7 @@ import functools import string import random +import re # from werkzeug.security import generate_password_hash, check_password_hash @@ -39,28 +40,30 @@ def info(): @app.route("/abc/") def abc(): - if 'uživatel' not in session: - flash('Nejsi příhlášen, tato stránka vyžaduje přihlášení.', 'error') - return redirect(url_for('login', page=request.full_path)) + if "uživatel" not in session: + flash("Nejsi příhlášen, tato stránka vyžaduje přihlášení.", "error") + return redirect(url_for("login", page=request.full_path)) return render_template("abc.html", slova=slova) + @app.route("/banan/", methods=["GET", "POST"]) def banan(): - if 'uživatel' not in session: - flash('Nejsi příhlášen, tato stránka vyžaduje přihlášení.', 'error') - return redirect(url_for('login', page=request.full_path)) - - hmotnost= request.args.get("hmotnost") - - výška= request.args.get("výška") + if "uživatel" not in session: + flash("Nejsi příhlášen, tato stránka vyžaduje přihlášení.", "error") + return redirect(url_for("login", page=request.full_path)) + + hmotnost = request.args.get("hmotnost") + + výška = request.args.get("výška") print(hmotnost, výška) - if hmotnost and výška != None : - bmi=int(hmotnost) / ((int(výška)/100)**2) + if hmotnost and výška != None: + bmi = int(hmotnost) / ((int(výška) / 100) ** 2) else: bmi = 0 return render_template("banan.html", bmi=bmi) + @app.route("/text/") def text(): return """ @@ -70,93 +73,134 @@ def text():

toto je text

""" -@app.route("/login/", methods = ['GET']) + + +@app.route("/login/", methods=["GET"]) def login(): - jmeno = request.args.get('jmeno') - heslo = request.args.get('heslo') + jmeno = request.args.get("jmeno") + heslo = request.args.get("heslo") print(jmeno, heslo) - if request.method == 'GET': - return render_template( 'login.html') + if request.method == "GET": + return render_template("login.html") -@app.route("/login/", methods = ['POST']) +@app.route("/login/", methods=["POST"]) def login_post(): - jmeno = request.form.get('jmeno') - heslo = request.form.get('heslo') - page = request.args.get('page') + jmeno = request.form.get("jmeno") + heslo = request.form.get("heslo") + page = request.args.get("page") - with SQLite('SQLlite.db') as cur: - cur.execute('select passwd FROM user WHERE login = ?', [jmeno]) + with SQLite("SQLlite.db") as cur: + cur.execute("select passwd FROM user WHERE login = ?", [jmeno]) ans = cur.fetchall() if ans and ans[0][0] == heslo: - flash('Jsi přihlášen!', 'message' ) - session['uživatel'] = jmeno - if page: + flash("Jsi přihlášen!", "message") + session["uživatel"] = jmeno + if page: return redirect(page) else: - flash('Nespávné přihlašovací udaje','error') + flash("Nespávné přihlašovací udaje", "error") if page: - return redirect( url_for ('login', page=page)) - return redirect( url_for ('login')) - #stejne jako funkce get, jen jiný zápis + return redirect(url_for("login", page=page)) + return redirect(url_for("login")) + # stejne jako funkce get, jen jiný zápis + @app.route("/logout/", methods=["GET"]) def logout(): - session.pop('uživatel', None) - return redirect( url_for ('login')) + session.pop("uživatel", None) + return redirect(url_for("login")) -@app.route("/registr/", methods = ['GET']) +@app.route("/registr/", methods=["GET"]) def registr(): - jmeno = request.args.get('jmeno') - heslo = request.args.get('heslo') - heslo2 = request.form.get('heslo2') + jmeno = request.args.get("jmeno") + heslo = request.args.get("heslo") + heslo2 = request.form.get("heslo2") print(jmeno, heslo, heslo2) - if request.method == 'GET': - return render_template( 'registr.html') + if request.method == "GET": + return render_template("registr.html") -@app.route("/registr/", methods = ['POST']) +@app.route("/registr/", methods=["POST"]) def registr_post(): - jmeno = request.form.get('jmeno') - heslo = request.form.get('heslo') - heslo2 = request.form.get('heslo2') - page = request.args.get('page') + jmeno = request.form.get("jmeno") + heslo = request.form.get("heslo") + heslo2 = request.form.get("heslo2") + page = request.args.get("page") - with SQLite('SQLlite.db') as cur: - cur.execute('INSERT INTO user = (?, ?)', [jmeno, heslo]) + with SQLite("SQLlite.db") as cur: + cur.execute("INSERT INTO user = (?, ?)", [jmeno, heslo]) ans = cur.fetchall() if heslo == heslo2: if ans and ans[0][0] == heslo: - flash('Jsi přihlášen!', 'message' ) - session['uživatel'] = jmeno + flash("Jsi přihlášen!", "message") + session["uživatel"] = jmeno if page: - return redirect(page) + return redirect(page) else: - flash('Nespávné přihlašovací udaje','error') + flash("Nespávné přihlašovací udaje", "error") if page: - return redirect( url_for ('login', page=page)) - return redirect( url_for ('pomerance')) + return redirect(url_for("login", page=page)) + return redirect(url_for("pomerance")) @app.route("/zkracovac/") def zkracovac(): - return render_template("zkracovac.html") + new = request.args.get("new") + if "uživatel" in session: + with SQLite("SQLlite.db") as cur: + res = cur.execute( + "SELECT zkratka, adresa FROM adresy WHERE user =?"[session["uživatel"]] + ) + zkratky = res.fetchall + if zkratky == None: + zkratky = [] + else: + zkratky=[] + return render_template("zkracovac.html", new=new, zkratky=zkratky) -@app.route("/zkracovac/", methods=['POST']) +@app.route("/zkracovac/", methods=["POST"]) def zkracovac_post(): - url = request.form.get('url') - zkratka = ''.join(random.choices(string.ascii_uppercase + - string.digits, k=5)) - - with SQLite('SQLlite.db') as cur: - cur.execute('INSERT INTO adresy (zkratka, adresa) VALUES (?, ?)', [zkratka, url]) + url = request.form.get("url") + if url and re.match("https?://.+", url): + zkratka = "".join(random.choices(string.ascii_uppercase + string.digits, k=5)) + flash("adresa ulozena") + with SQLite("SQLlite.db") as cur: + if "uživatel" in session: + + cur.execute( + "INSERT INTO adresy (zkratka, adresa, user) VALUES (?, ?, ?)", + [zkratka, url, session["uživatel"]], + ) + + else: + cur.execute( + "INSERT INTO adresy (zkratka, adresa) VALUES (?, ?)", [zkratka, url] + ) + + return redirect(url_for("zkracovac", new=zkratka)) + else: + flash("ADRESA NEN9 ADRESA") + return redirect(url_for("zkracovac")) - return redirect(url_for('zkracovac')) \ No newline at end of file +@app.route("/zkracovac/", methods=["GET"]) +def dezkracovac(zkratka): + print(zkratka) + with SQLite("SQLlite.db") as cur: + if "uživatel" in session: + res = cur.execute("SELECT adresa FROM adresy WHERE zkratka=?", [zkratka]) + odpoved = res.fetchall()[0][0] + if odpoved: + print(odpoved) + return redirect(odpoved) + else: + flash("({})neni adresa".format(zkratka)) + return redirect(odpoved)