美文网首页
Flask-请求与响应

Flask-请求与响应

作者: 遇明不散 | 来源:发表于2019-05-06 18:51 被阅读0次

    请求与响应

    请求对象

    在 Flask 中,请求信息被封装到 request 对象中

    request常用属性
    • scheme : 获取请求方案(协议)
    • method : 获取本次请求的请求方式
    • request.args : 获取使用get请求方式提交的数据
    • request.form : 获取使用post请求方式提交的数据
    • request.values : 获取GET和POST请求方式提交的数据(GET和POST通用)
    • request.cookies : 获取cookies中的信息
    • request.headers : 获取请求消息头的信息
    • request.path : 获取请求的url地址
    • request.files : 获取用户上传的文件
    • request.full_path : 获取请求的完整路径
    • request.url : 获取访问地址
    获取请求提交的数据
    • get 请求方式
      • get请求的数据是放在QueryString中的
      • request.args封装的就是get请求的数据,类型为字典
    # 获取 name 对应的值
    request.args['name'] 
    request.args.get('name')
    
    # 获取 name_list 列表数据
    request.args.getlist('name_list') 
    
    • post 请求方式
      • post请求的数据是放在form中的
      • request.form封装的就是post请求的数据,类型为 字典
    # 获取 name 对应的值
    request.form['name']
    request.form.get('name')
    
    # 获取name_list列表数据
    request.form.getlist('name_list') 
    
    响应对象

    响应对象其实就是要响应给客户端的内容,可以是普通字符串、模板或者是重定向

    @app.route('/')
    def index():
        # return "Hello World"
        # return render_template('xxx.html')
        # 以上两种行为,本质上响应回去的都是字符串
    
    构建响应对象,再响应给客户端
    • 不是直接响应字符串,而是响应对象。响应对象可以包含响应的字符串,同时也可以实现其他的响应操作
    • 在 flask 中,使用make_response()构建响应对象
    resp = make_response('响应内容')
    resp = make_response(render_template('xxx.html'))
    # 实现其他的响应操作,如:添加cookies,...
    return resp
    
    重定向

    由服务器端通知客户端重新向新的地址发送请求

    from flask import redirect
    # ... ...
    resp = redirect('重定向地址')
    return resp
    
    文件上传
    • 提交方式必须为post
    • enctype属性必须设置为multipart/form-data
    • 大量数据上传的时候(如:超大文件),就不能使用网页上传了(主要是由于http协议不支持),需要使用单独的上传工具(C/S版的)
    服务器端
    # 通过 request.files 获取上传的文件
    f = request.files['文件框name属性值']
    
    # 通过 f.save(保存路径) 将文件保存到指定目录处
    # 通过 f.filename 获取文件的名称
    filename = f.filename
    f.save('static/'+filename)
    

    相关文章

      网友评论

          本文标题:Flask-请求与响应

          本文链接:https://www.haomeiwen.com/subject/xtsroqtx.html