• 🍖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

  • 相关阅读:
    Codeforces 295 (Div.1)
    Codeforces 614
    Java面试题
    Eclipse创建JSP、HTML、CSS文件默认字符集设置成UTF-8
    Eclipse中配置Tomcat容器
    设置Eclipse中的字符集为UTF-8
    Windows中配置maven环境变量
    Windows中配置MySQL环境变量
    Nacicat for Oracle 绿色版 亲测可用
    MySQL安装版安装过程
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14851626.html
Copyright © 2020-2023  润新知