这是我使用DjangoRestFramework基本观点: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,我会返回一个html模板,它将位于我的Django App目录中名为“模板”的文件夹中。我被告知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页面打败DjangoRestFramework的能力的目的返回JSON对象并创建一个RESTful API?
当你说“通常你想把你的DjangoRestFramework REST API放入类似/ api的东西。”你的意思是我需要DRF API作为它自己的应用程序吗?或者在settings.py文件所在的文件夹中?因为在你链接到的教程中(https://github.com/kevinastone/django-api-rest-and-angular/tree/master/example/api),看起来好像“example”是项目和“api “是'settings.py'文件所在的文件夹。它看起来像'api'基本上是它自己的应用程序(有models.py,serializers.py和urls.py),但没有views.py。该设置有点混乱。 – user2719875