Webový server na 7 řádků
Tomáš Bedřich
+ 2 Mega knihoven...
% pip install flask
Collecting flask
Using cached Flask-0.12.2-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from flask)
Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting Werkzeug>=0.7 (from flask)
Using cached Werkzeug-0.12.2-py2.py3-none-any.whl
Collecting click>=2.0 (from flask)
Using cached click-6.7-py2.py3-none-any.whl
Collecting itsdangerous>=0.21 (from flask)
Using cached itsdangerous-0.24.tar.gz
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask)
Using cached MarkupSafe-1.0.tar.gz
Installing collected packages: MarkupSafe, Jinja2, Werkzeug,
click, itsdangerous, flask
Successfully installed
from flask import Flask
app = Flask('moje-aplikace')
@app.route('/')
def pozdrav():
return 'Ahoj'
if __name__ == '__main__':
app.run(debug=True)
HTML šablony
from flask import render_template
@app.route('/sablona')
def pozdrav_se_sablonou():
return render_template('pozdrav.html')
render_template('pozdrav.html', pozdrav='Ahoj', jmeno='Franto')
<html>
<head> ... </head>
<body>
{{ pozdrav }}, jak se máš {{ jmeno }}?
</body>
</html>
Data
DATA
DATA!
z URL
(např.: http://www.policie.cz/admin/smazat-uzivatele/0)
@app.route('/obrazek/<int:cislo>')
def zobraz_obrazek(cislo):
return render_template('obrazek.html', cislo=cislo)
z query stringu
from flask import request
@app.route('/obrazek')
def zobraz_obrazek():
cislo = request.args['cislo']
z formuláře
@app.route('/obrazek', methods=['POST'])
def zobraz_obrazek():
cislo = request.form['cislo']
Sessions
from flask import session
@app.route('/prihlaseni')
def prihlaseni():
session['uzivatel'] = 'franta123'
Další triky...
from flask import url_for
url_for('zobraz_obrazek')
from flask import redirect
@app.route('/presmeruj_na_root')
def presmeruj_na_root():
return redirect('http://root.cz')
@app.errorhandler(404)
def nenalezeno():
return render_template('nenalezeno.html'), 404
Flask
+ jednoduchý do začátku
+ perfektně rozšiřitelný
+ na malé aplikace/API
+ nic vám nenutí
– nic vám nenutí
– složitější uvnitř
Co na tom jede?
heurekadevs.cz/ctvrty-fialovy
Tomáš Bedřich
@tbedrich
Webový server na 7 řádků
By Tomáš Bedřich
Webový server na 7 řádků
- 1,080