路由
使用 route() 装饰器来把函数绑定到 URL
1 |
|
带参数的路由
1 |
|
转换器类型
类型 | 说明 |
---|---|
string | 默认值,接受任何不含斜杠的文本 |
int | 接受正整数 |
float | 接受正浮点数 |
path | 类似 string,可以包含斜杠 |
uuid | 接受 UUID 字符串 |
重定向行为
1 |
|
区别在于尾部的斜杠
URL 构建
url_for(函数名, 参数)
1 | from falsk import Flask, escape, url_for |
HTTP 方法
默认情况下,一个路由只回应 GET 请求,route() 装饰器的 methods 参数可以处理不同的 HTTP 方法:
1 | from flask import request |
获取静态文件
url_for(‘static’, filename = ‘style.css’)
渲染模板
render_template()
1 | from flask import render_template |
情形 1 : 一个模块:
1 | /application.py |
情形 2 : 一个包:
1 | /application |
日志
app.logger.debug()
app.logger.warning()
app.logger.error()
Cookies
读取 cookies:
from flask import request
request.cookies.get(‘username’)
储存 cookies:
resp = make_response(render_template(…))
resp.set_cookie(‘username’, ‘the username’)
重定向和错误
from flask import abort, redirect, url_for
redirect(url_for(‘login’))
abort(401)
JSON
jsonify()
会话
if ‘username’ in session:
return ‘Logged in as %s’ % escape(session[‘username’])
session[‘username’] = request.form[‘username’]
session.pop(‘username’, None)
Flask.secret_key 生成秘钥
UWSGI
from werkzeug.contrib.fixers import LighttpdCGIRootFix
app.wsgi_app = LighttpdCGIRootFix(app.wsgi_app)