请求数据获取与响应

1.请求数据及其获取

序号参数解释
1固定参数在路由上获取的
2查询字符串:args根据需求
3提交数据:form提交表单传递数据
4文件上传:files用户向服务器上传文件
5请求头:headers请求头携带的请求信息
6请求方法:method请求所使用的请求方法
7URL地址:url请求的URL地址

2.固定参数与转换器

固定参数:是URL中固定的,是不可获取的一部分

@app.route('/hello/<int:id>/<string:name>')
# 固定参数路由要在函数中接收
def hello(id,name):
    return '接收到的id是:%d,name是%s'%(id,name)
2.1 转换器

flask自带转换器共有6个

转换器作用
StringConverter字符串转换器
AnyConverter匹配any中任意路径
PathConverter路径转换器,参数可以包含’/’
IntergerConverter整1型转换器
FloatConverter浮点型转化器
UUIDConverterUUID唯一标识码转换器
2.2 自定义转换器

如果flask内置转换器无法满足特定需求,可以自定义转换器

# 1 .导入转换器的基类
from werkzeug.routing import BaseConverter

# 2.继承转换器基类并且实现regex方法
class PhoneConverter(BaseConverter):
   # 不能使用^、$ 符
    regex = r'1[3-9][0-9]{9}'

# 3. 把自定义的转换器挂载到flask对象上面
app.url_map.converters['phone'] = PhoneConverter

# 4. 使用自定义转换器
@app.route('/phone/<phone:my_phone>')
def get_phone(my_phone):
    return '手机号是:%s'%my_phone

3.获取参数

3.1 查询参数获取
# 查询参数的获取
from flask import request

@app.route('/query')
def query():
    # 把不可变字典类型转换位普通的dict类型
    params = request.args.to_dict()
    print(params)
    print(type(params))
    # name = request.args.get('name')
    name = request.args['name']
    age = request.args.get('age')
    return '当前名字:%s,年龄%s'%(name,age)
3.2 表单数据获取
# 表单参数的获取
from flask import request
@app.route('/form',methods=['post'])
def form():
    # 把不可变字典类型转换位普通的dict类型
    params = request.form.to_dict()
    print(params)
    print(type(params))
    name = request.form.get('name')
    age = request.form.get('age')
    return '当前名字:%s,年龄%s' % (name, age)
3.3 文件上传
from flask import request
@app.route('/upload',methods=['post'])
def upload():
    img = request.files.get('img')
    print(img)
    img.save("./01.png")
    return '上传文件'
3.4 模板响应形式
# 返回一个模板页面
from flask import render_template
@app.route('/page')
def page():
    return render_template('hello.html')
3.5 重定向
# 重定向
from flask import redirect
@app.route('/jump')
def jump():
    return redirect('http://www.baidu.com/')
3.6 json数据响应
# 返回json数据
# dict-->json   其他-->dict-->json
from flask import jsonify

@app.route('/json')
def get_json():
    data = {
        "name":"haha",
        "age":15,
        "action":["吃","睡觉","喝水"]
    }
    return jsonify(data)
3.7 元组数据响应
# 元组数据返回响应(response,status,headers)
@app.route('/return')
def return_json():
    return ("hello",400,{
        "aaa":"bbb"
    })
3.8 自定义响应
# 自定义响应对象
from flask import make_response
@app.route('/return_obj')
def return_obj():
    resp = make_response('hello')
    resp.headers['aaa'] = 'bbb'
    resp.status = "404"

    return resp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Playwright拦截请求获取响应数据,可以按照以下步骤进行操作: 1. 导入所需的Playwright模块和相关类: ```python from playwright.sync_api import sync_playwright ``` 2. 初始化Playwright并创建一个浏览器实例: ```python with sync_playwright() as playwright: browser = playwright.chromium.launch() context = browser.new_context() page = context.new_page() ``` 3. 使用`page.route()`方法拦截请求,并在回调函数获取响应数据: ```python def handle_request(route, request): # 获取请求的URL url = request.url # 获取请求的方法 method = request.method # 获取请求的头部信息 headers = request.headers # 获取请求的主体数据 body = request.post_data # 继续处理请求获取响应数据 response = route.continue_() # 获取响应的状态码 status = response.status # 获取响应的头部信息 response_headers = response.headers # 获取响应的主体数据 response_body = response.body() # 在这里对请求响应进行处理或保存数据等操作 # 拦截所有请求,并调用上面定义的回调函数处理请求响应 page.route("**/*", handle_request) # 打开一个网页,触发请求拦截 page.goto("https://www.example.com") # 关闭浏览器实例 context.close() browser.close() ``` 在上面的代码中,`handle_request`函数是用来处理请求响应的回调函数。在这个函数中,你可以获取请求的URL、方法、头部信息和主体数据,以及获取响应的状态码、头部信息和主体数据。你可以在这里对请求响应进行处理或保存数据等操作。 请注意,上面的代码使用了Playwright的同步API,在异步环境中使用时,需要使用异步版本的相关方法和修饰器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值