Difference between revisions of "Parts of a Flask Web App"
(→url_for) |
(→Handling HTML Forms) |
||
Line 63: | Line 63: | ||
=Handling HTML Forms= | =Handling HTML Forms= | ||
+ | The code below is an example of using html form elements | ||
+ | <syntaxhighlight lang=python> | ||
+ | @app.route('/login', methods=['GET', 'POST']) | ||
+ | def login(): | ||
+ | if request.method == 'POST': | ||
+ | if (request.form['username']=="wayne") and request.form['password']=="pass": | ||
+ | return redirect(url_for('home')) | ||
+ | return ''' | ||
+ | <form method="post"><p> | ||
+ | Username: <input type=text name=username><p> | ||
+ | Password: <input type=password name=password><p> | ||
+ | <input type=submit value=Login> | ||
+ | </form> | ||
+ | ''' | ||
+ | </syntaxhighlight> | ||
=Using Sessions= | =Using Sessions= | ||
=Templates= | =Templates= |
Revision as of 14:00, 10 April 2019
@app.route
This defines where a particular path in the url relates too:
@app.route("/")
def hello():
return "Hello World!"
When the app server is running, visiting the root will produce the message 'Hello World!'. The code below will also display this if you visit '/home' on the app server:
@app.route("/")
@app.route("/home")
def hello():
return "Hello World!"
Parameters
The example below will just display the message:
@app.route("/")
def hello():
return "Hello World!"
You can also use parameters:
@app.route("/<name>")
def hello(name):
return "Hello "+name
Using this method the parameters are passed as strings, and you may need to convert them. In this example the URL '/Wayne' will display the message 'Hello Wayne'.
url_for
If you look at this example:
@app.route("/home")
def home():
return "test"
@app.route("/hello")
def hello():
return "Hello World!"
it creates 2 paths, one for '/hello' (runs 'def hello()') and one for '/home' (runs 'def home()'). url_for will accept the name of the method (ie def ....) and return the route.
so:
url_for('hello')
will return:
/hello
Handling HTML Forms
The code below is an example of using html form elements
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
if (request.form['username']=="wayne") and request.form['password']=="pass":
return redirect(url_for('home'))
return '''
<form method="post"><p>
Username: <input type=text name=username><p>
Password: <input type=password name=password><p>
<input type=submit value=Login>
</form>
'''