Python django中如何使用restful框架

1、什么是RESTful框架?

RESTful框架是一种基于HTTP协议设计的轻量级Web服务架构,它是一种架构风格,并不是具体的技术规范。REST的全称是Representational State Transfer,意为“表现层状态转移”。

RESTful框架是基于URI(统一资源标识符)、HTTP协议、HTTP方法(GET、POST、PUT、DELETE等)来实现接口的,它可以轻松地与其他系统互通,并且具有灵活性、可扩展性和性能优越等优点,被广泛应用于Web和移动互联网领域。

2、Django RESTful框架简介

Django RESTful框架是基于Django框架之上的一种RESTful风格的Web应用程序开发框架,它提供了一套丰富的功能来帮助快速构建API(Application Programming Interface)。

Django RESTful框架提供了一系列的组件来构建Web API。其中,最重要的组件是ViewSet和Serializer。ViewSet是一系列请求处理程序(即视图函数)的集合,它们用于处理来自客户端的请求(GET、POST、PUT、DELETE等),并返回响应数据。而Serializer则是将表示形式(如Python对象)转换为JSON或其他格式的Python对象的组件。

3、Django RESTful框架的安装

3.1、Python安装

首先需要在本地安装Python环境。可以从Python官网下载最新版本的Python安装程序。

sudo apt install python3.8

3.2、Django安装

在安装Django之前,需要安装pip,一个Python包管理工具。

sudo apt install python3-pip

然后使用pip安装Django。

pip install Django

3.3、Django REST framework安装

使用pip安装Django REST framework。

pip install djangorestframework

4、Django RESTful框架的使用

4.1、创建Django项目

首先,需要使用Django命令创建一个新项目。

django-admin startproject myproject

这将在当前文件夹中创建一个名为myproject的新Django项目。

4.2、创建Django应用程序

接下来,需要在myproject文件夹中创建一个新的Django应用程序。

python manage.py startapp myapp

这将在myproject文件夹中创建一个名为myapp的新Django应用程序。

4.3、配置Django REST framework

打开myproject/myproject/settings.py文件,找到INSTALLED_APPS,加入'django.contrib.sites'和'rest_framework'。

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'django.contrib.sites',

'rest_framework',

'myapp',

]

然后,在同一个settings.py文件中,设置REST framework的配置选项。

REST_FRAMEWORK = {

'DEFAULT_AUTHENTICATION_CLASSES': [

'rest_framework.authentication.BasicAuthentication',

'rest_framework.authentication.SessionAuthentication',

],

'DEFAULT_PERMISSION_CLASSES': [

'rest_framework.permissions.IsAuthenticated',

],

'DEFAULT_RENDERER_CLASSES': [

'rest_framework.renderers.JSONRenderer',

'rest_framework.renderers.BrowsableAPIRenderer',

]

}

4.4、创建数据模型

在myapp/models.py文件中,创建一个数据模型。

from django.db import models

class Book(models.Model):

title = models.CharField(max_length=200)

author = models.CharField(max_length=200)

published_date = models.DateField()

description = models.TextField()

def __str__(self):

return self.title

这个数据模型表示一本书,包含标题、作者、出版日期和描述等属性。

4.5、创建序列化器

在myapp/serializers.py文件中,创建一个序列化器。

from rest_framework import serializers

from myapp.models import Book

class BookSerializer(serializers.ModelSerializer):

class Meta:

model = Book

fields = '__all__'

这个序列化器将Book模型转换为JSON格式数据。

4.6、创建视图集

在myapp/views.py文件中,创建一个视图集。

from rest_framework import viewsets

from myapp.models import Book

from myapp.serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):

queryset = Book.objects.all()

serializer_class = BookSerializer

这个视图集包含了一系列请求处理程序,用于处理REST API的各种请求(GET、POST、PUT、DELETE等),并返回响应数据。

4.7、注册视图集

将视图集注册为Django的URL模式。

在myproject/myproject/urls.py文件中,加入以下代码:

from django.urls import include, path

from rest_framework import routers

from myapp.views import BookViewSet

router = routers.DefaultRouter()

router.register(r'books', BookViewSet)

urlpatterns = [

path('', include(router.urls)),

path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))

]

这将路由请求到BookViewSet上,并将接口地址设置为'/books/'。

4.8、测试RESTful API

使用以下命令启动Django服务器。

python manage.py runserver

在浏览器中输入'http://127.0.0.1:8000/books/'即可访问RESTful API。

注意:为了进行测试,需要在数据库中创建一些Book对象。

5、总结

Django RESTful框架是一个轻量级、可扩展、灵活和高性能的RESTful风格的Web应用程序开发框架。它为开发人员提供了一种快速构建API的方法,包括ViewSets、Serializers和Routers等组件。使用Django RESTful框架,开发者可以轻松地构建和维护Web API,同时提供跨平台和跨系统的互通性。未来,Django RESTful框架将在Web和移动互联网领域广泛应用。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签