这是我使用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)当我转到调用这个视图的网址(本地主机: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 App目录中一个名为"Templates“的文件夹中。有人告诉我DjangoRestFramework很有用,因为我可以创建一个JSON来返回RESTful对象。我尝试将以下内容添加到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返回RESTful对象和创建JSON应用程序接口的能力吗?
发布于 2015-05-07 10:13:37
首先,有一些东西可以让Django Rest框架更好地使用angular。在我决定尝试ember之前,我一直在使用this utorial。试着为你的问题提供一个有用的例子:
当您加载http://yourserver/时,这将打开index.html页面,该页面随后下拉angular内容,然后开始对REST api进行RESTful调用以生成数据。请注意,您可以开始混合使用Django表单等内容,但我建议您保持简单,一旦掌握了基础知识,就阅读链接文章(或其他文章)。
https://stackoverflow.com/questions/30088728
复制相似问题