https://ultimatedjango.com/blog/how-to-consume-rest-apis-with-django-python-reques/
我遵循这个指南,并试图改变API与工作semrush.com网站地点。你知道吗
问题在于,与教程中不同的是,它们不会以JSON格式返回数据,但如下所示:
domain;http://domain.com/fullUrl
我安装了CSV render for rest framework并将其添加到设置中:
REST_FRAMEWORK = {
# specifying the renderers
'DEFAULT_RENDERER_CLASSES': (
'rest_framework_csv.renderers.CSVRenderer',
),
}
这是Serializer:
class SemrushSerializer(serializers.ModelSerializer):
class Meta:
model = SavedSemrush
以及视图.py地址:
def save_semrush(request):
if request.method == "POST":
form = SubmitSemrush(request.POST)
if form.is_valid():
keyword = form.cleaned_data['keyword']
r = requests.get('http://api.semrush.com/?type=phrase_organic&key=' + settings.SEMRUSH_KEY + '&display_limit=10&export_columns=Dn,Ur&phrase=' + keyword + '&database=us')
serializer = SemrushSerializer(data=r)
if serializer.is_valid():
serializer.save()
else:
form = SubmitSemrush()
因为在提交表单之后,它只是重新加载(不向orm添加数据),所以我只能猜测,要么序列化程序对于这种数据类型是错误的,要么我在视图中搞乱了简单的代码:)
有什么想法吗? 干杯
您正试图用
Request
对象实例化SemrushSerializer
。你知道吗你需要传递JSON数据。你知道吗
相关问题 更多 >
编程相关推荐