Paramter wird nicht übergeben

Django, Flask, Bottle, WSGI, CGI…
Antworten
vertretung
User
Beiträge: 20
Registriert: Sonntag 11. August 2019, 09:06

Hallo,
ich habe das Problem, dass ich von meinem Python-Code einen Parameter an das Template übergeben möchte, dass allerdings nicht funktioniert.

Mein Python-Code:

Code: Alles auswählen

from flask import Flask, url_for, render_template, request
import requests
from bs4 import BeautifulSoup
import csv

app = Flask(__name__)


@app.route("/")
def index():
    return render_template('index.html', tor="TOR")


@app.route("/login", methods=['POST', 'GET'])
def login():
    name = ""
    if request.method == 'POST':
        name = request.form['name']
    else:
        name == request.args.get('name')
    return "Hallo "+name+"!"


if __name__ == '__main__':
    app.run(port=1337, debug=True)
Und jetzt mein ganz einfaches html:

Code: Alles auswählen

<!DOCTYPE html>
<html>
  <body>
    <h1>{{ tor }}</h1>
    <form action="http://localhost:1337/login" method="POST">
      <p>Name:</p>
      <p><input type="text" name="name" /></p>
      <p><input type="submit" value="Submit" /></p>
    </form>
  </body>
</html>
Danke schonmal im Voraus
Benutzeravatar
__blackjack__
User
Beiträge: 14336
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@vertretung: Also bei mir funktioniert's. 🤷‍♂️
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
vertretung
User
Beiträge: 20
Registriert: Sonntag 11. August 2019, 09:06

Bei mir gibt er halt die Klammern wie einen String aus..mmh
Sirius3
User
Beiträge: 18375
Registriert: Sonntag 21. Oktober 2012, 17:20

Was meinst Du mit "Klammern"?

In `login` ist die letzte Zuweisung keine Zuweisung. Das Zuweisen eines leeren Strings an `name` wäre dann unsinnig. Wenn Du sowohl GET- als auch POST-Variablen unterstützen willst, benutze `request.values`.
vertretung
User
Beiträge: 20
Registriert: Sonntag 11. August 2019, 09:06

Sirius3 hat geschrieben: Donnerstag 29. August 2019, 19:27 Was meinst Du mit "Klammern"?
Damit miene ich die Klammern {{}}. Ich wollte hier

Code: Alles auswählen

return render_template('index.html', tor="TOR")
das übergeben. Es sollte im htmlauch so angezeigt werden..angezeigt wird aber nur:

Code: Alles auswählen

{{ tor }}
Sirius3
User
Beiträge: 18375
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie __blackjack__ schon geschrieben hat, mit dem von Dir gezeigten Code funktioniert es, wie gewünscht.

Was sagt denn die Konsolenausgabe des Skripts?
Antworten