django如何自己调用自身接口?
前言
使用requests、urllib、http.client等HTTP请求库可以发起请求,但这种方法还是不够“内部”,因此不推荐。
推荐方法
django自身有一个Client类可以发起内部调用,他实际上并不是发起HTTP网络请求,而是找到路由对应的方法或函数去执行,效果等同HTTP请求,但更加“内部”,消耗更少。
from django.test.client import Client
headers = {'Authorization': 'Token <your-token>'}
response = client.get('/api/user/', headers=headers)
if response.status_code == 200:
# 接口调用成功,处理返回的数据
data = response.json()
# ...
else:
# 接口调用失败,处理错误
# ...
支持get、post等常用方法,用法参考requests