主要摘引自Flask文档的《快速入门》章节

HTTP方法

默认情况下,路由只响应GET请求,通过给route()装饰器提供一个 methods 参数,即可让路由响应其他方法:


# 同时响应GET和POST方法
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 处理用户提交的登录信息表单
    else:
        # 返回用户登录信息

静态文件

在包中或模块旁边创建一个名为static的文件夹,即可在应用中使用 /static 访问其中的静态资源,为静态文件生成URL时,使用特殊的'static'端点名:


url_for('static',filename="style.css")

请求对象

使用前需先导入


from flask import request

当前的请求方式通过method属性访问,表单数据通过form属性访问:


@app.route('/login', methods=['POST', 'GET'])
def login():
    error = None
    if request.method == 'POST':
        # 获取并校验请求方法
        if valid_login(request.form['username'],
                       request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = '无效的用户名或密码'
    else:
        # 处理GET方法

form中的键值不存在时,会抛出一个KeyError,需捕获并做相应处理

通过args属性访问URL中包含提交的参数(?key=value):


searchword = request.args.get('q','')