这篇教程Python django中如何使用restful框架写得很实用,希望能帮到您。 restful框架的使用在使用django进行前后台分离开发时通常会搭配django-rest-framework 框架创建RESTful风格的接口API。框架介绍及版本要求可参考官方地址:https://www.django-rest-framework.org 
本文以创建man 包含name 、sex 字段的API为实例学习django-rest-framework 框架的使用。 主要包含下面5个步骤: 1.创建Django项目 2.创建ORM模型 3.加载Django REST Framework 4.序列化模型 5.创建加载数据的view和url 1.创建Django项目创建django_rest django-admin startproject django_rest 进入django_rest,创建虚拟环境env 激活虚拟环境,并安装django source ./env/bin/activate 安装 django 创建rest_app python manage.py startapp rest_app 注册app,将app添加到INSTALLED_APPS #setting.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_app'] 创建后台admin账户用于管理 $ python manage.py createsuperuserUsername (leave blank to use 'root'):admin Email address: Password: Password (again): Superuser created successfully. 2.创建ORM模型数据库我们使用默认sqlite3 即可,如需要变更可在setting.py中databases配置。 修改我们/django_rest/models.py添加我们man 的模型 #models.pyfrom django.db import models# Create your models here.class Man(models.Model): name = models.CharField(max_length=64) sex = models.CharField(max_length=64) def __str__(self): return self.name 做数据库迁移 python manage.py makemigrations python manage.py migrate 
将Man这个model注册到我们的后台,以便可以通过django的后台做增删查改,编写admin.py如下 #admin.pyfrom django.contrib import adminfrom .models import Man# Register your models here.admin.site.register(Man) # 注册Man到后台 启动django服务 python manage.py runserver 访问 http://127.0.0.1:8000/admin/可以看到登录界面,输入密码登录 
可以看到我们的rest_app下的模型man对象mans 
我们添加一个那个男人lgd.ame 
3. 加载Django REST Framework安装工具包 pip install djangorestframework 注册rest_framework #setting.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_app' 'rest_framework' #注册] 4.序列化模型序列化器会把我们的模型数据转化(序列化)为json格式,这样就能够被请求了。同样当有josn数据提交过来的时候,序列化器会将json数据转换为模型供咋们使用。 我们在rest_app下创建文件serializer.py 我们要做三件事: 1.导入Man模型 2.导入序REST Framework序列化器 3.创建新的类将模型和序列化器链接起来 from rest_framework import serializersfrom .models import Manclass Manserializer(serializers.HyperlinkedModelSerializer): class Meta: model = Man fields = ('name','sex') 5.创建加载数据的view和url我们需要把序列化后的数据返回给浏览器,所以要做一下步骤: 1.通过不通的Man查询数据库 2.将查询后的数据传递给序列化器,通过序列化器转化为json 我们在rest_app/views.py编写我们的视图,ModelViewSet 由rest_framework提供,包含了get、post方法 # views.pyfrom rest_framework import viewsetsfrom .serializers import ManSerializerfrom .models import Manclass ManViewSet(viewsets.ModelViewSet): queryset = Man.objects.all().order_by('name') #查询结果给queryset serializer_class = ManSerializer #对结果进序列化 在django_rest目录下urls.py添加api路由 from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('', include('rest_app.urls')), ] 在rest_app目录下创建urls.py添加视图路由,通过rest_framework中router确保我们的请求到正确的动态资源。 from django.urls import include, pathfrom rest_framework import routersfrom . import viewsrouter = routers.DefaultRouter()router.register(r'man', views.ManViewSet) #路由到ManViewSet视图# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [ path('', include(router.urls)), #使用router路由 path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))] 最后我们来启动服务,访问http://127.0.0.1:8000/ 可以在浏览器查看到我们api信息 python manage.py runserver 
访问http://127.0.0.1:8000/man/ 来查看man资源 
通过id来访问api资源http://127.0.0.1:8000/man/1/ 
这样我们一个基础restful风格的API创建完成了。感觉关键点还是理解ModelViewSet 和内置router 不读源码很难知其所以然。 到此这篇关于Python django中如何使用restful框架的文章就介绍到这了,更多相关restful框架的使用内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! Python基础之变量的相关知识总结 Django+Celery实现定时任务的示例 |