Python 什么';我的django api代码有什么问题
我遵循本指南,并尝试更改API以与semrush.com网站合作 问题在于,与本教程不同,它们不会以JSON格式返回数据,但如下所示: 领域 我安装了用于rest framework的CSV渲染,并将其添加到设置中:Python 什么';我的django api代码有什么问题,python,django,django-rest-framework,Python,Django,Django Rest Framework,我遵循本指南,并尝试更改API以与semrush.com网站合作 问题在于,与本教程不同,它们不会以JSON格式返回数据,但如下所示: 领域 我安装了用于rest framework的CSV渲染,并将其添加到设置中: REST_FRAMEWORK = { # specifying the renderers 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework_csv.renderers.CSVRenderer', )
REST_FRAMEWORK = {
# specifying the renderers
'DEFAULT_RENDERER_CLASSES': (
'rest_framework_csv.renderers.CSVRenderer',
),
}
这是Serializer:
class SemrushSerializer(serializers.ModelSerializer):
class Meta:
model = SavedSemrush
和views.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添加数据),所以我只能猜测序列化程序对于这种数据类型是错误的,或者我设法弄乱了视图中的简单代码:)
有什么想法吗?
干杯您正试图用一个
请求
对象实例化SemrushSerializer
您需要将JSON数据传递给它
r = requests.get(
'http://api.semrush.com/?type=phrase_organic&key={key}&'
'display_limit=10&export_columns=Dn,Ur&phrase={keyword}&'
'database=us'.format(
key=settings.SEMRUSH_KEY,
keyword=keyword
)
json = r.json()
serializer = SemrushSerializer(data=json)