Domanda

Ho usato Werkzeug per creare applicazioni conformi a WSGI. Sto cercando di modificare il codice nella prima pagina.

La sua idea di base è che vai all'URL / hello e ottieni un " Hello World! " Messaggio. Vai a / ciao / e ricevi " ciao! & Quot ;. Ad esempio, / hello / jeff produce " Hello Jeff! & Quot ;. Comunque, quello che sto cercando di fare è mettere un modulo in prima pagina con una casella di testo in cui puoi inserire il tuo nome e lo invierà a / hello. Quindi, se inserisci " Jeff " nel modulo e invia, ricevi il messaggio " Ciao Jeff! " messaggio.

Tuttavia, non ho idea di come farlo. Devo passare il " nome " variabile per il modello ciao, ma non so come. Ecco il mio index.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Index page</title>
</head>

<body>
<h1>Go to the <a href="${url_for('say_hello')}">default</a></h1>
<form name="helloform" action="${url_for('say_hello')}" method="post">
<input type="text" name="name">
<input type="submit">
</form>
</body>
</html>

method = " ricevere " neanche funziona, prevedibilmente.

È stato utile?

Soluzione

Fallo nel modo giusto: vai su / hello? name = joe per salutare Joe, e così via. Ecco come HTML / HTTP è progettato per funzionare! Il tuo codice dietro l'URL / hello deve solo ottenere il parametro name dalla richiesta, se presente, e rispondere di conseguenza.

Altri suggerimenti

I moduli HTML hanno un indirizzo di destinazione statico, action = " / qualcosa " , ma si desidera cambiare l'indirizzo in base all'input dell'utente . Hai due opzioni:

  1. Aggiungi javascript al modulo html in cambia l'indirizzo di destinazione (di aggiungendo il nome) prima del modulo è stato inviato.

  2. Scrivi un nuovo metodo nel tuo framework web che legge GET o POST variabili e puntare il modulo lì.

Direttamente sul link alla pagina da te fornito ( http://werkzeug.pocoo.org/ ) quando fai clic su "Fai clic qui", ottieni un codice per l'esempio ciao X. Quello che sembra mancare è:

Hello ${url_values['name']|h}!

da qualche parte nel tuo modello html (supponendo che sia il modello per la risposta e per la richiesta)

L'HTML si basa sul principio REST ... ogni url dovrebbe essere un oggetto, come una persona; NON un'azione, come salutare una persona. Chiedi all'URL di identificare chi vuoi salutare solo se la tua applicazione web sa chi è internamente, guardando il suo database.

Se la tua applicazione web non ha alcun oggetto chiamato Joe, la progettazione di URL con Joe non è l'approccio giusto. La tua particolare applicazione web è scoprire chi sono le persone e inviare loro un messaggio di benvenuto. Quindi, dovresti probabilmente avere un URL: / greeter, che cerca le informazioni inviate nelle richieste GET o POST (dal tuo modulo) e visualizza un saluto. Se non sa chi salutare, può visualizzare il modulo per scoprirlo.

Pensa sempre in termini di oggetti con cui stai effettivamente lavorando --- i componenti che compongono il sistema --- quando costruisci un software.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top