2017-10-17 7 views
0

Wesentliches, was ich zu tun versucht:Flask TextArea- zu Python Def()

ich eine einfache HTML-Seite mit einem Textbereich zur Eingabe habe ein Bündel von Text, mein Anwendungsfall in jeder Zeile wie unter einem einziger Code :

1234 
5678 
1456 
etc. 

Idealerweise möchte ich, dass in Python nehmen und in der Lage sein, mit den Daten zu arbeiten und die Ergebnisse zurück. So können einfach anfangen und sagen, jede Zeile als separater Eintrag nehmen und sie gegen eine Funktion führen Sie das Wort „Hallo“ vor, um es hinzuzufügen, so sind die Ergebnisse:

Hi 1234 
Hi 5678 
etc. 

Bisher haben dieses Arbeitsbeispiel I gefunden aber ich neige dazu, es zu brechen, wenn ich etwas versuche.

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() 

Beispiel:

ich versuche, das Textfeld in einen String zu extrahieren und dann zurück, dass wieder auf die Seite mit:

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

Jede Hilfe oder Anleitung wäre willkommen!

+0

Sie sagten, Sie etwas haben versucht, und es brach? Bitte zeigen Sie diesen Code zu uns! –

+0

Im Prinzip alles, was versucht, die Textarea zu einer Zeichenkette zu extrahieren und diese dann zurück auf die Seite zu bringen. Beispiel: x = format (request.form ["text"]) return x. – JSimonsen

Antwort

1

können Sie zugreifen und speichern Sie den Text aus textarea mit den folgenden Zeilen:

@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

genagelt. Vielen Dank. Ich kann das jetzt nach Bedarf aufbauen. – JSimonsen