2017-10-17 14 views
0

Essentiellement ce que je suis en train de faire:Flask textarea à Python Def()

J'ai une simple page HTML avec une zone de texte pour saisir un tas de texte, mon cas d'utilisation est un code unique sur chaque ligne comme ci-dessous :

1234 
5678 
1456 
etc. 

Idéalement, je veux prendre cela en Python et être capable de travailler avec les données et de renvoyer les résultats. permet donc commencer simple et dire prendre chaque ligne comme une entrée séparée et exécutez contre une fonction d'ajouter le mot « Salut » devant elle donc les résultats sont les suivants:

Hi 1234 
Hi 5678 
etc. 

Jusqu'à présent ont cet exemple de travail que je trouve mais j'ai tendance à le casser chaque fois que j'essaye quelque chose.

Html:

<!DOCTYPE html> 
<html lang="en"> 
<body> 
    <h1>Enter some text</h1> 
    <form action="submit" id="textform" method="post"> 
    <textarea name="text">Hello World!</textarea> 
    <input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

Python:

From flask import Flask, request 
app = Flask(__name__) 

@app.route('/') 
def main_form(): 
    return '<form action="submit" id="textform" method="post"><textarea name="text">Hello World!</textarea><input type="submit" value="Submit"></form>' 

@app.route('/submit', methods=['POST']) 
def submit_textarea(): 
    return "You entered: {}".format(request.form["text"]) 

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

Exemple:

j'essaie d'extraire le textarea à une chaîne, puis revenir que revenir à la page avec:

x = format(request.form["text"]) 
return x 

Toute aide ou conseil serait apprécié!

+0

Vous avez dit que vous avez essayé quelque chose et il a brisé? S'il vous plaît nous montrer ce code! –

+0

Essentiellement tout ce qui tente d'extraire la zone de texte en une chaîne, puis de la renvoyer à la page. Exemple: x = format (request.form ["text"]) return x. – JSimonsen

Répondre

1

Vous pouvez accéder et stocker le texte de textarea avec les lignes suivantes:

@app.route('/submit', methods=['POST']) 
def submit_textarea(): 
    # store the given text in a variable 
    text = request.form.get("text") 

    # split the text to get each line in a list 
    text2 = text.split('\n') 

    # change the text (add 'Hi' to each new line) 
    text_changed = ''.join(['<br>Hi ' + line for line in text2]) 
    # (i used <br> to materialize a newline in the returned value) 

    return "You entered: {}".format(text_changed) 
+0

On l'a cloué. Merci. Je peux construire cela comme nécessaire maintenant. – JSimonsen