Seite 1 von 1

Flask - CSS lät nicht bei Template Vererbung

Verfasst: Montag 8. Februar 2021, 23:33
von MacGruber
Moin,

ich probiere mich gerade an Flask aus. Ich habe ein HTML Dokument namens nav_bar.html in dem mein Menu gespeichert ist und über Template Vererbung will ich es mit anderen HTML Dokumenten verbinden, wie z.B. mit home.html. Das funktioniert auch erstmal ganz gut, nur ist das Dokument home.html von der Formatierung der CSS Datei style.css unberührt. Nav_bar.html verbindet sich problemlos mit CSS.
Seltsamerweise wird die Einstellung der Seitenränder für home.html übernommen, der Rest aber nicht.
Hier meine Dokumente.

Python Skript

Code: Alles auswählen

from flask import Flask, render_template


app = Flask(__name__)


@app.route('/')
def index():
    return render_template('home.html')


@app.route('/ueber_mich/')
def ueber_mich():
    return render_template('lebenslauf.html')


@app.route('/impressum/')
def impressum():
    return render_template('impressum.html')


if __name__=='__main__':
    app.run(debug=True)

nav_bar.html

Code: Alles auswählen

<!DOCTYPE html>

<html>

<head>
  <meta charset="UTF-8">
  <meta charset="ISO-8859-1">
  <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='styles/style.css') }}">
  <title>Schweinereien mit Daten</title>
</head>

<body>
  <!--Navigationsbar-->
    <div class="navbar">
        <ul class="nav_liste">
            <li class="nav_eintrag"><a class="nav_link" href="{{ url_for('index') }}">HOME</a></li>
            <li class="nav_eintrag"><a class="nav_link">PROJEKTE</a></li>
            <li class="nav_eintrag"><a class="nav_link">REPOSITORIES</a></li>
            <li class="nav_eintrag"><a class="nav_link">KRAM</a></li>
            <li class="nav_eintrag"><a class="nav_link" href="{{ url_for('ueber_mich') }}">ÜBER MICH</a></li>
            <li class="nav_eintrag"><a class="nav_link" href="{{ url_for('impressum') }}">IMPRESSUM</a></li>
        </ul>
    </div>
    
    <!--Hauptbild-->
    <img src="../static/mathematics-3821034_pixaboy_cropped.jpg" alt="Main-Pic" width="100%"> 


    <!--Container für den Content-->
    {% block content %}
        
    {% endblock %}
    

    <!--In case of deactivated JavaScript-->
    <noscript>
        <p>JavaScript is necessary!<br>
        Activate JavaScript in the settings of your browser.</p>
    </noscript>
  
</body>

</html>
home.html

Code: Alles auswählen

{% extends "nav_bar.html"%}

{% block content %}

<div class="content">
    <p>Hier muss noch viel mehr inhalt hin!!!</p>
</div>

{% endblock %}
style.css

Code: Alles auswählen

body {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  color:#1E1E1E;
  background-color:#fafafa;
  margin:0px;
  padding:0px;
}

h1 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 300px;
}

h2 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 25px;
}

h3 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 22px;
}

h4 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 20px;
}

p {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 16px;
}


/*Text in case of NoScript*/
noscript {
  font-size: 16px;
  color: red;
}


/*Unsortierte horizontale Liste zur Navigation*/
.nav_liste {
  list-style-type: none;
  text-align: center;
  background-color: #2cbe58;
  cursor: pointer;
  padding-top:15px;
  padding-bottom:15px;
  margin: 0px;
}

.nav_eintrag {
  display: inline;
  font-size: 14px;
  letter-spacing: 0.2em;
  padding-left:20px;
  padding-right:20px;
  margin:0px;
  color: #30bb5a;
}

.nav_link:link {
  color:#BBBBBB;
  text-decoration: none;
}

.nav_link:visited {
  color:#BBBBBB;
  text-decoration: none;
}

.nav_link:active {
  color:#BBBBBB;
  text-decoration: none;
}

.nav_link:hover {
  color:#BBBBBB;
  text-decoration: none;
}

.nav_link:focus {
  color:#BBBBBB;
  text-decoration: none;
}


/*Hauptbereich*/
.content {
  margin-top: 0px;
  margin-left: 150px;
  margin-right: 150px;
  background-color: brown;
  padding-top:0px;
  padding-left:10px;
  padding-right:10px;
}

.content h1 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 80px;
}

.content h2 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 25px;
}

.content h3 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 22px;
}

.content h4 {
  font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
  font-size: 20px;
}

.content p {
  margin:0px;
  padding:0px;
  font-size:16px;
  color:green;
}
Cache hatte ich schon mal gelöscht. Weiß einer von euch Rat. Ich bin echt am Verzweifeln

Gruß und Danke im Voraus

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Dienstag 9. Februar 2021, 07:40
von Sirius3
Wie sieht Deine Verzeichnisstruktur aus?
Was sagt denn die Debug-Ausgabe?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Dienstag 9. Februar 2021, 16:45
von MacGruber
Moin,

mein Verzeichnis sieht aus wie folgt:

Projekt
--->app.py
--->static
------>mathematics-3821034_pixaboy_cropped.jpg (Bild für nav_bar.html)
------>styles
--------->style.css

Ordner sind feet gedruckt und Dateien kursiv.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Dienstag 9. Februar 2021, 22:12
von MacGruber
Weiß noch wer Hilfe?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Dienstag 9. Februar 2021, 22:33
von MacGruber
Eins vergaß ich noch, die Debug-Ausgabe gibt keine Fehler aus.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Dienstag 9. Februar 2021, 22:54
von sparrow
Wird die die styles.css den gefunden und ausgeliefert?
Beim schnellen überfliegen wundert mich nämlich, dass du einmal mit url_for auf static zugreifst - und ein paar Zeilen weiter hart mit "../static".
Wie steht der Pfad zur zur CSS in dem gerenderten HTML?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 08:29
von Sirius3
Aber wie sieht die Debugausgabe exakt aus?
Auf den ersten Blick sieht die Verzeichnisstruktur und das url_for richtig aus.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 09:34
von noisefloor
Hallo,

welche Pfade stehen denn im fertig gerenderten HTML? Das siehst du ja , wenn du im Browser den Seitenquelltext aufrufst (STRG+U im Firefox, beim Chrome weiß ich die Tastenkombi gerade nicht)? Und was passiert, wenn du im HTML der Seite auf den Link zum Stylesheet klickst?

Gruß, noisefloor

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 15:37
von MacGruber
Hallo,

vielen Dank schon mal für eure Antworten.

@Noisefloor, @SparrowWenn ich mir im Browser den HTML Code ansehe, kann ich auch das CSS Dokument sehen und anklicken. Sieht soweit so gut aus. Bedeutet das mein CSS Code ist falsch?

@Sirius
Meinst, dann was ich im Terminal angezeigt bekomme? Dann kann ich nur folgendes lesen.

base) saschagruber@Saschas-MBP SchweinereienMitDaten % source /opt/anaconda3/bin/activate
conda activate flaskenv
(base) saschagruber@Saschas-MBP SchweinereienMitDaten % conda activate flaskenv
/opt/anaconda3/envs/flaskenv/bin/python /Users/saschagruber/Documents/Web_Apps/SchweinereienMitDaten/app.py
(flaskenv) saschagruber@Saschas-MBP SchweinereienMitDaten % /opt/anaconda3/envs/flaskenv/bin/python /Users/saschagruber/Documents/Web_Apps/SchweinereienMitDaten/app.py
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 225-112-672
127.0.0.1 - - [10/Feb/2021 15:26:55] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/Feb/2021 15:26:55] "GET /static/styles/style.css HTTP/1.1" 200 -
127.0.0.1 - - [10/Feb/2021 15:26:55] "GET /static/mathematics-3821034_pixaboy_cropped.jpg HTTP/1.1" 200 -
127.0.0.1 - - [10/Feb/2021 15:28:46] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/Feb/2021 15:28:50] "GET /static/styles/style.css HTTP/1.1" 200 -

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 15:42
von Sirius3
Da steht doch "GET /static/styles/style.css HTTP/1.1" 200, also der css-Style wird geladen, und wie ich schon schrieb, bei meinem Test wird auch alles scheußlich bunt im Browser angezeigt. Was also wird nicht so angezeigt, wie Du es erwartest?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 16:13
von einfachTobi
Da ich selbst schon mal drüber gestolpert bin: Ggf. mal den Cache leeren bzw. die Seite mit Ctrl/Shift + F5 neu laden.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 17:21
von MacGruber
@Sirius
Ich ging auch davon aus, dass die CSS lädt, weil der Seitenrand in der Anzeige stimmt. Was fehlt in dem Beispiel ist, dass der Schriftzug "Hier muss noch viel mehr inhalt hin!!!" nicht grün angezeigt wird. Auch auf Änderungen der Schriftgröße bleibt alles unverändert.

@einfachTobi
Den Cache hatte ich schon mal geleert. Hatte mir leider nichts gebracht. Muss man da was spezielles beachten?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 18:15
von __blackjack__
Mir geht's wie Sirius3: Scheusslich bunt. Und die Schrift ist bei mir an der entsprechenden Stelle auch grün auf braunem Hintergrund.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 21:07
von MacGruber
Es ist zum Mäuse melken. Ich habe jetzt dreimal den Cache gelehrt, zweimal den Mac neugestartet und eben nochmal Chrome installiert, um es da zu probieren. Hat alles nichts geholfen. :(

Die Farben sind damit ich gleich den Unterschied erkennen kann ;)

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 22:00
von MacGruber
Ich habe jetzt nochmal Flask ge-updated. Irgendwie scheint es jetzt zu funktionieren :shock:
Kann es irgendwie an jinja gelegen haben?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Mittwoch 10. Februar 2021, 22:56
von __blackjack__
So generell nicht, aber wie sieht/sah das denn mit Caching auf Serverseite aus?

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Donnerstag 11. Februar 2021, 17:15
von MacGruber
ich weiß nicht genau, was du damit meinst?
Ich bin noch sehr unerfahren mit Webframeworks.

Re: Flask - CSS lät nicht bei Template Vererbung

Verfasst: Donnerstag 11. Februar 2021, 17:24
von __blackjack__
@MacGruber: Ich bin jetzt gerade zu faul nachzusehen ob Jinja selbst oder Flask Templates cached. Die meisten Template-Enginges nehmen ja das Template und machen daraus Python(-Byte)code und cachen solche kompilierten Templates dann auch im RAM.