装饰器传入url,装饰器内实现axios get
时间: 2024-01-27 18:05:20 浏览: 138
vue+axios 拦截器实现统一token的案例
可以这样实现:
```python
import requests
def get_request(url):
def decorator(func):
def wrapper():
response = requests.get(url)
data = response.json()
func(data)
return wrapper
return decorator
```
使用示例:
```python
@get_request('https://jsonplaceholder.typicode.com/posts/1')
def print_data(data):
print(data)
print_data() # 输出 {"userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"}
```
这样定义的装饰器 `get_request` 接收一个 `url` 参数,返回一个装饰器函数 `decorator`,后者接收被装饰函数 `func`,并返回一个新的函数 `wrapper`,用于发送 GET 请求到指定的 `url` 并将响应数据传递给 `func` 进行处理。最后,在被装饰函数上使用该装饰器即可实现对指定 URL 的 GET 请求。
阅读全文