当前位置: 首页 > article >正文

Flask项目入门—request以及Response

导入

request(请求)以及Response(响应)通过flask导入,如下:

from flask import Blueprint, request, render_template, \
    jsonify, make_response, Response, redirect, url_for, abort

request:

默认请求不支持post请求,如果需要同时支持GET和POST,就需要路由设置methods,比如

# 路由名称request
# methods请求方法
@blue.route('/request/', methods=['GET', 'POST'])
def get_request():

先看客户端向服务器发送的请求示例,

http://127.0.0.1:5000/request/?name=jianghoufu&name=chenguili&age=33

(1)request.method)请求方式        

在上面视图函数get_request中,我打印request.method

 print(request.method)
 # 输出 GET
(2)request.args:GET请求的参数

request.args是ImmutableMultiDict: 类字典对象,它跟字典的区别是可以出现重复的key

视图函数中打印request.args得到如下

print(request.args)
#ImmutableMultiDict([('name', 'jianghoufu'), ('name', 'chenguili'), ('age', '33')])

print(request.args['name'], request.args['age'])
# jianghoufu 33

print(request.args.get('name'))
# jianghoufu

print(request.args.getlist('name'))
# ['jianghoufu', 'chenguili']
(3)request.form:POST请求的参数

该类型同样是ImmutableMultiDict: 类字典对象,类似request.args

print(request.form)  
# ImmutableMultiDict([('name', 'jianghouf'), ('age', '33')])
print(request.form.get('name'))  # lucy
(4)print(request.path) # /request/
(5)print(request.url) # http://127.0.0.1:5000/request/?name=lisi&name=wangwu&age=33
(6)print(request.base_url) # http://127.0.0.1:5000/request/
(7)print(request.host_url) # http://127.0.0.1:5000/
(8)print(request.remote_addr) # 127.0.0.1,客户端的ip

(9)print(request.files) # 文件内容 ,ImmutableMultiDict([])
(10)print(request.headers) # 请求头
(11)print(request.user_agent) # 用户代理,包括浏览器和操作系统的信息 , python-requests/2.28.2

Response

        当我们请求接口过来的是欧响应可以返回json或者html等

# 响应的几种方式
    # 1. 返回字符串(不常用)
    # return 'response OK!'

    # 2. 模板渲染 (前后端不分离)
    # return render_template('index.html', name='张三', age=33)

    # 3. 返回json数据 (前后端分离)
    data = {'name': '李四', 'age': 44}
    # return data

    # jsonify(): 序列化,字典=>字符串
    # return jsonify(data)

    # 4. 自定义Response对象
    html = render_template('index.html', name='张三', age=33)
    print(html, type(html))  # <class 'str'>

    # res = make_response(html, 200)
    res = Response(html)

    #这里是重定向到home
    response = redirect('/home/')
    return response

特别注意这里的Response,他是一种返回类型,视图函数可以返回json,html,模版,也可以自定义,比如Response(html),比如response = redirect('/home/')
return response

redirect(重定向)

重定向的几种方式

(1)return redirect('https://www.qq.com')

(2)redirect('/response/')

(3)通过url_for():反向解析,通过视图函数名反过来找到路由

        url_for('蓝图名称.视图函数名')

        ret = url_for('user.get_response')

        redirect(ret)

        上面的含义是重定向到蓝图名称为user下的视图函数get_response对应的路由

abort

主动抛出异常

比如:abort(500)


http://www.kler.cn/a/418554.html

相关文章:

  • 王道考研编程题总结
  • CentOS使用chrony服务进行时间同步源设置脚本
  • 汉字Unicode编码相互转换API集成指南
  • 多种平台上安装部署调试Open5GS(四)
  • 在RockyLinux9.4上安装Microk8s
  • centos更换源文件,换源,替换源
  • C与指针。
  • 深度解析MySQL的刷脏机制
  • 11. 名称空间
  • 深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用
  • 【iOS】《Effective Objective-C 2.0》阅读笔记(一)
  • 力扣103.二叉树的锯齿形层序遍历
  • git clone超大仓库时报错:fatal: early EOF
  • centos挂载ntfs或exFAT格式硬盘
  • 系统监控——分布式链路追踪系统
  • AJAX一、axios使用,url组成(协议,域名,资源路径)查询参数和化简,错误处理,请求/响应报文,状态码,接口文档,
  • 动态规划(c基础)
  • 【大数据学习 | Spark调优篇】Spark之内存调优
  • 深度学习基础3
  • 匿名发帖/匿名论坛功能设计与实现(编辑发帖部分)
  • 乌班图单机(不访问外网)部署docker和服务的方法
  • 【React】全局状态管理(Context, Reducer)
  • 在Window10或11系统中同时安装 JDK8 和 JDK11
  • 使用Docker Compose安装WordPress(ARM/x86架构)
  • 六、Python —— 函数
  • CondaValueError: Malformed version string ‘~‘: invalid character(s).