这是我使用DjangoRestFramework基本观点:
class user_list(APIView):
"""
List all users, or create a new user.
"""
def get(self, request):
users = User.objects.all()
serializer = UserSerializer(users, many=True)
return Response(serializer.data)
def post(self, request):
serializer = UserSerializer(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
当我去调用该视图的URL(本地主机:8000 / CMS /用户),DjangoRestFramework已经有一个前端,其表示:
GET /CMS/users
HTTP 200 OK
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
[
{
"username": "t",
}
]
如何定制呢? 我想在前端使用AngularJS。 我知道,如果没有DjangoRestFramework,我将返回其将设在我的Django应用程序目录中一个名为“模板”文件夹中的HTML模板。 我已经告诉DjangoRestFramework是有用becauase我可以创建一个RESTful API,返回JSON对象。 我尝试添加以下到我的settings.py文件:
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
)
}
但我似乎仍不能找出我怎么能定制我的Django应用程序的前端。 我知道有:
renderer_classes = (TemplateHTMLRenderer,)
在我可以在我看来返回一个HTML页面,如下所示:
return Response({'user': self.object}, template_name='user_detail.html')
但不实际返回的HTML页面打败DjangoRestFramework的返回JSON对象,并创建一个RESTful API能力的目的是什么?