在Django中创建一个API模型,例如:
from django.db import models
class API(models.Model):
url = models.CharField(max_length=255)
response = models.TextField()
date = models.DateTimeField(auto_now_add=True)
然后,在视图中编写代码来处理接收到的POST请求并将API信息存储到数据库中:
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse
from .models import API
@csrf_exempt
def save_api(request):
if request.method == 'POST':
url = request.POST.get('url')
response = request.POST.get('response')
api = API(url=url, response=response)
api.save()
return JsonResponse({'success': True})
else:
return JsonResponse({'success': False})
在Javascript中,我们可以使用Fetch API将API信息存储到数据库中。以下是一个示例:
const url = 'http://localhost:8000/save_api/';
fetch(url, {
method: 'POST',
headers: {
'content-type': 'application/json',
'X-CSRFToken': getCookie('csrftoken') // 使用Django默认的CSRF Token进行身份验证
},
body: JSON.stringify({ // 将API信息转换为JSON格式
url: 'https://api.example.com/',
response: '{"status": 200, "message": "OK"}'
})
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('API信息已成功保存到数据库中');
} else {
console.error('保存API信息时出错');
}
})
.catch(error => console.error(error));
function getCookie(name) { // 用于获取CSRF Token值的辅助函数
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.substring(0, name.length + 1) === `${name}=`) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}