DjangoRestFramework-如何定制前端?
这是我使用DjangoRestFramework的基本视图:DjangoRestFramework-如何定制前端?,django,angularjs,django-rest-framework,frontend,Django,Angularjs,Django Rest Framework,Frontend,这是我使用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 Res
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(localhost:8000/CMS/users)时,DjangoRestFramework已经有了一个前端,上面写着:
GET /CMS/users
HTTP 200 OK
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
[
{
"username": "t",
}
]
我如何定制这个?我想在前端使用AngularJS。我知道如果没有DjangoRestFramework,我会返回一个html模板,该模板位于Django应用程序目录中名为“Templates”的文件夹中。我被告知DjangoRestFramework非常有用,因为我可以创建一个返回JSON对象的RESTful API。我尝试将以下内容添加到我的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页面是否会破坏DjangoRest框架返回JSON对象和创建RESTful API的功能呢?首先,有一些东西可以让Django Rest框架更好地使用angular。直到我决定尝试灰烬,我一直在努力。尝试为您的问题提供一个有用的示例: