[Python] What can i do to make my sql based if statement run in my Jinja html template

Discussão em 'Python' iniciado por Stack, Março 18, 2025.

  1. Stack

    Stack Membro Participativo

    I'm writting an employee calender website as a practice project but i can't get my SQL conditions to work

    I have the following relevent code:

    from flask import Flask, render_template, request, redirect, g
    from werkzeug.security import check_password_hash, generate_password_hash
    from datetime import datetime
    import sqlite3

    app = Flask(__name__)

    DATABASE = 'hoved.db'
    #alt database udfyrering

    #Henter db resultater
    def get_db():
    db = getattr(g,'_database', None)
    if db is None:
    db = g._database = sqlite3.connect(DATABASE)
    db.row_factory = sqlite3.Row
    return db

    #kan bruges til at lave en query på data i databasen
    def query_db(query, args=(), one=False):
    cur = get_db().execute(query, args)
    all_data = cur.fetchall()
    cur.close()
    return (all_data[0] if all_data else None) if one else all_data

    #frigiver resourcer når man er færdig med databasen
    @app.teardown_appcontext
    def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
    db.close()


    @app.route("/", methods=["GET", "POST"])
    def index():

    #
    medarbejderenavne = []
    vagthvemhvornår = []

    for user in query_db('select empid, empname from emp'):
    medarbejderenavne.append(user['empname'])

    vagter = (query_db(
    'SELECT shifts.empid, shifts.empid, weekday, day FROM shifts '
    'JOIN emp ON emp.empid = shifts.empid '
    'WHERE shifts.empid = ?', [user['empid']]))

    vagthvemhvornår.append(vagter)
    for shifts in vagthvemhvornår:
    for shift in shifts:
    print(dict(shift))


    if request.method == "GET":
    return render_template("index.html", name=medarbejderenavne, vagter=vagthvemhvornår)

    if request.method == "POST":

    return render_template("test.html")


    Where in index am i supposed to get a list of dictionarys that i can use in my jinja template

    {% for nam in name %}
    <div class="row g-2 ">
    <div class="col-md-1">
    <div class="dates responsivetext">{{nam}}</div>
    </div>
    {%if vagter[loop.index0]['weekday'] == 0 %}
    <div class="col-md-1">
    <div class="cliente responsivetext">vagt</div>
    </div>
    {% endif %}


    but i just can't figure out how to run the if statement. I know that weekday in my first dictionary should be 0 according to my database

    Shiftid weekday
    1 0
    2 1

    Continue reading...

Compartilhe esta Página