安装
$ sudo pip install virtualenv
$ git clone https://github.com/mitsuhiko/flask.git
$ cd flask
$ virtualenv venv
$ venv\scripts\activate
一个最小的应用
hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
在命令行运行
$ python hello.py
* Running on http://127.0.0.1:5000/
打开浏览器访问http://127.0.0.1:5000/, 就可以看到Hello World了
变量规则
通过把 URL 的一部分标记为 <variable_name>就可以在 URL 中添加变量。
@app.route('/hello/<name>')
def hello_world(name):
return 'Hello %s' % name
渲染模板
使用render_template()方法可以渲染模板
@app.route('/hello/')
@app.route('/hello/<name>')
def hello_world(name=None):
return render_template('hello.html', name=name)
目录结构如下即可
/hello.py
/templates
/hello.html
模板hello.html
<!doctype html>
<title>Hello Flask</title>
{% if name %}
<h1>Hello {{name}}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
重定向和错误
使用redirect()函数可以重定向。使用abort()可以更早的退出请求,并返回错误代码
from flask import abort, redirect, url_for
@app.route('/')
def index():
return redirect(url_for('login'))
@app.route('/login')
def login():
abort(401)
this_is_never_executed()
日志
app.logger.debug('A value for debugging')
app.logger.warning('A warning occurred (%d apples)', 42)
app.logger.error('An error occurred')