Django REST Framework框架是一个功能强大且灵活的工具包,用于构建Web API。让我们看一个使用REST框架构建一个简单的模型支持的API的快速示例。
我们将创建一个读写API,用于访问项目用户的信息。
pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support
...or clone the project from github.
git clone https://github.com/encode/django-rest-framework
Add ‘rest_framework‘ to your INSTALLED_APPS setting.
INSTALLED_APPS = ( ... ‘rest_framework‘, )
如果您打算使用可浏览的API,您可能还需要添加REST框架的登录和注销视图。 将以下内容添加到根urls.py文件中。
urlpatterns = [ ... url(r‘^api-auth/‘, include(‘rest_framework.urls‘)) ]
INSTALLED_APPS = ( ... # Make sure to include the default installed apps here. ‘rest_framework‘, ) REST_FRAMEWORK = { # Use Django‘s standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. ‘DEFAULT_PERMISSION_CLASSES‘: [ ‘rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly‘ ] }
Don‘t forget to make sure you‘ve also added rest_framework to your INSTALLED_APPS.
We‘re ready to create our API now. Here‘s our project‘s root urls.py module:
from django.conf.urls import url, include from django.contrib.auth.models import User from rest_framework import routers, serializers, viewsets # Serializers define the API representation. class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = (‘url‘, ‘username‘, ‘email‘, ‘is_staff‘) # ViewSets define the view behavior. class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer # Routers provide an easy way of automatically determining the URL conf. router = routers.DefaultRouter() router.register(r‘users‘, UserViewSet) # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browsable API. urlpatterns = [ url(r‘^‘, include(router.urls)), url(r‘^api-auth/‘, include(‘rest_framework.urls‘, namespace=‘rest_framework‘)) ]
ps:与后台进行交互
def api_test(request): data = json.loads(request.POST.get(‘data‘)) print(data) serializer_obj = rest_serializer.UserSerializer(data=data) if serializer_obj.is_valid(): serializer_obj.save() serializer_obj return render(request,"crm/api-test.html",locals())
Here you go!
You can now open the API in your browser at http://127.0.0.1:8000/, and view your new ‘users‘ API. If you use the login control in the top right corner you‘ll also be able to add, create and delete users from the system.
原文:https://www.cnblogs.com/ray-h/p/10513750.html