zoukankan      html  css  js  c++  java
  • 🍖Flask请求对象与响应对象

    一.请求对象

    from flask import Flask,request,render_template,redirect,make_response
    app = Flask(__name__)
    
    @app.route('/',methods=['get',"POst"])
    def test():
        print(request.method)      # 获取请求方式
        print(request.args)        # 获取get请求数据
        print(request.form)        # 获取post请求数据(不包含文件数据)
        print(request.values)      # 包含get请求,post请求数据
        print(request.cookies)     # 获取客户端携带的cookie
        print(request.headers)     # 获取请求头中所携带的数据
        print(request.path)        # 获取不带域名只带参数的请求路径
        print(request.full_path)   # 获取不带域名的但携带"?"后参数的路径
        print(request.script_root) #
        print(request.url)         # 获取请求路径http://127.0.0.1:5000/
        print(request.base_url)    # 获取请求路径http://127.0.0.1:5000/
        print(request.url_root)    # 获取请求路径http://127.0.0.1:5000/
        print(request.host_url)    # 获取请求路径http://127.0.0.1:5000/
        print(request.host)        # 获取当前请求用户IP和port: 127.0.0.1:500
        print(request.files)       # 获取文件数据
    
        return 'ok'
    
    if __name__ == '__main__':
        app.run()
    

    ps : 在Flask中 request 是一个全局变量, 而在 Django 中是每一个视图函数都有一个 request 对象, 为什么在flask中使用request不会混乱呢? 一定是Flask帮我们处理了这个问题, 后面讲解

    二.响应对象

    from flask import Flask,request,render_template,redirect,jsonify,make_response
    app = Flask(__name__)
    
    @app.route('/',methods=['get',"POst"])
    def test():
        # return 'ok'  # 直接返回字符串,支持返回HTML标签
        # return render_template('index.html',locals())  # 渲染一个HTML页面,并可以将数据传入
        # return redirect('/index.html')  # 重定向到某个页面
        # return jsonify({"k1":"v1"})  # 返回json格式数据(Django中使用JsonResponse)
    
        # 返回response对象
        response = make_response("Hello word!")
    
        # 在response中操作cookie
        response.set_cookie("name","shawn")  # 设置cookie : key-value
        # response.delete_cookie('name')  # 删除cookie
    
        # 设置响应头
        response.headers['NAME'] = "I am Shawn!"
    
        # response是flask.wrapper中Response的对象
        print(type(response))  # <class 'flask.wrappers.Response'>
        from flask.wrappers import Response
        return response
    
    if __name__ == '__main__':
        app.run()
    
    • 浏览器cookie

    image-20210603212321781

    • 响应头 Response Headers

    image-20210603212520701

  • 相关阅读:
    Leetcode 126.单词接龙II
    Leetcode 125.验证回文串
    Leetcode 124.二叉树中的最大路径和
    Leetcode 123.买卖股票的最佳时机III
    Leetcode 122.买卖股票的最佳时机II
    西子凌波回复集5(网友整理版)
    西子凌波回复集4(网友整理版)
    西子凌波回复集3(网友整理版)
    K杀(逻辑-标准-规则)
    西子凌波49:2018年11月29日微博解盘提示
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14851626.html
Copyright © 2011-2022 走看看