2016-05-13 18 views
-2

ich habe:Flask Beitrag auf die gleiche Seite

from flask import Flask, render_template 
import datetime 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    now = datetime.datetime.now() 
    timeString = now.strftime("%Y-%m-%d %H:%M") 
    templateData = { 
    'title' : 'HELLO!', 
    'time': timeString 
    } 
return render_template('main.html', **templateData) 

if __name__ == "__main__": 
app.run(host='0.0.0.0', port=80, debug=True) 

und html:

<!DOCTYPE html> 
<head> 
    <title>{{ title }}</title> 
</head> 
    <body> 
    <h1>Hello, World!</h1> 
    <h2>The date and time on the server is: {{ time }}</h2> 
    </body> 
</html> 

stehen am Kolben eine Schaltfläche erstellen, in einer Kolben-Funktion auf der gleichen Seite zu schreiben? Thank

+0

Ja, in der Tat ist es ziemlich normal, direkt im [quickstart] (http://flask.pooco.org/docs/0.10/quickstart/#http-methods) abgedeckt. Hast du einen Button hinzugefügt und hast ein Problem? – davidism

+0

Ja, du kannst das ziemlich einfach machen. Kannst du uns zeigen, was du versucht hast? – sebenalern

Antwort

2

So Formular-Code kann wie folgt aussehen (dies ist nur ein Beispiel):

<form method='POST' action="/"> 
     <p>username: <input type="text" name="username"/></p> 
     <p>password: <input type="password" name='password'/></p> 
     <p><input type="submit" value="Login" style="width: 100px; height: 100px;"/></p> 
    </form> 

action = "..." sollte der Pfad, den Sie zu stellen sein. Also, wenn wir wollten „/“ Weg, um es zu wir die oben tun kann und es in Ihrem Code fangen, indem Sie die folgenden Schritte aus:

@app.route('/', methods=['GET', 'POST']) 
def hello(): 
    if request.method == 'POST': 
     .... # Add whatever code you want to execute if it is a post request 

    now = datetime.datetime.now() 
    timeString = now.strftime("%Y-%m-%d %H:%M") 
    templateData = { 
    'title' : 'HELLO!', 
    'time': timeString 
    } 
return render_template('main.html', **templateData) 

Wir brauchen die app.route Teil ändern, weil wir angeben müssen Wir können diese Route über eine Get-Anfrage oder eine Post-Anfrage erreichen. Wir können prüfen, ob es eine Post-Anfrage ist, indem Sie verwenden, wenn request.method == 'POST':

Hoffe, dass dies hilft.

Verwandte Themen