2015-09-19 15 views
6

Ok, więc jestem nowy w kolbie i chcę wiedzieć, jakie obiekty lub narzędzia użyłbym do tego. Chcę utworzyć formularz, w którym użytkownik wprowadza jakiś tekst, kliknie przycisk przesyłania, a następnie tekst, który przesłał, jest związany jako ciąg pythonowy i ma uruchomioną funkcję, a ten tekst jest następnie przesyłany z powrotem do sieci. wyświetlaną stronę z wartością zwracaną przez tę funkcję. Oto przykład: formularzJak zbudować post-formularz w kolbie?

html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
<form action = "/" method="get"> 
    <input type="text" name="mail" size="25"> 
    <input type="submit" value="Submit"> 
</form> 

<textarea cols="50" rows="4" name="result"></textarea> 

</body> 
</html> 

to tutaj jest to, co uważam, że powinniśmy być funkcja url powinien wyglądać

@app.route('/', methods=['GET', 'POST']) 
    def form(): 
     if request.method == 'GET': 
      input_text = request.data #step to bind form text to python string 
       new_text = textfunction(input_text) #running the function on the retrieved test. 
       return (new_text) # no idea if this is write, but returns text after modification. 

Jaki byłby najlepszy sposób to skonfigurować ? Czy byłoby poprawne umieszczenie zmiennej jako wartości wejściowego html? Potrzebujesz pomocy w tym zakresie.

Odpowiedz

8

Zasadniczo, chcesz utworzyć blok w swoim szablonie, który jest uwzględniany tylko wtedy, gdy zmienna ma ustawioną wartość. Patrz poniższy przykład

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
<form action = "/" method="get"> 
    <input type="text" name="mail" size="25"> 
    <input type="submit" value="Submit"> 
</form> 

{% if result %} 
<textarea cols="50" rows="4" name="result">{{ result }}</textarea> 
{% endif %} 

</body> 
</html> 

, a następnie w kodzie Pythona

@app.route('/', methods=['GET', 'POST']) 
def index(result=None): 
    if request.args.get('mail', None): 
     result = process_text(request.args['mail']) 
    return render_template('index.html', result=result) 


def process_text(text): 
    return "FOO" + text 
+0

Dziękuję bardzo! jedno szybkie pytanie, na czym polega slot Brak w pliku request.args.get ("mail", Brak)? –

+0

request.args.get ("mail", brak) zwróci wartość "mail" w dyktafonie, jeśli jest ustawiony, w przeciwnym razie zwraca None, który jest falsey. request.args jest dyktatem parametrów zapytania w żądaniu pobierania –