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: 13099
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@vertretung: Also bei mir funktioniert's. 🤷‍♂️
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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: 17746
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: 17746
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