RESTful是一种前后端分离、通过调用API接口来实现具体的功能。
在RESTFUl中,每个URL视为一个资源,客户端通过http动词,对服务器资源进行操作。
关于RESTful的概念和原理更详细的介绍,可以参考下面阮大师的这篇文章,讲的非常透彻。链接地址:
http://www.ruanyifeng.com/blog/2011/09/restful.html
我在Django环境中,是通过Django REST framework来实现RESTful API的
这里假设读者已经安装好了python3及Django2.0的运行环境,并且已经配置好Django2.0,能运行Django2.0,Django2.0的环境部署的安装不在本文的讨论范围,请自行百度或google。
Django REST framework的安装环境很简单,可以通过pip直接装。我安装的是djangorestframework 3.8.2 ,命令如下:
pip3 install djangorestframework
然后需要在Django中新建一个app,名称叫apps
python manage.py startapp apps
好了。下面就是具体的配置过程。
简单来说,一个简单的RESTful 功能的实现,需要更改5个文件:
1、settings.py, 加上rest_framework和apps:
INSTALLED_APPS = [
...
'rest_framework',
'apps',
...
]
2、views.py,定义一个类:
class ServerList(APIView):
def get(self, request):
gg = serverinfo.objects.all()
serializer = Serverserializer(gg, many=True)
return Response(serializer.data)
3、urls.py, 加一行url:
path('serverlist/', views.ServerList.as_view()),
4、models.py,新建类:
class serverinfo(models.Model):
id = models.AutoField(primary_key=True, null=False, verbose_name='ID')
server_name = models.CharField(max_length=50, null=False, verbose_name='服务器名称')
type = models.CharField(max_length=50, null=False, verbose_name='类型')
server_ip = models.CharField(max_length=16, null=False, verbose_name='IP')
建了models之后,不要忘了运行makemigration和migrate,这两个命令可以帮助你在数据库建表。
5、新建一个文件serializers.py
这个文件有点儿类似django中的forms.py, 不过功能更强大,代码示例如下:
from rest_framework import serializers
class Serverserializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
server_name = serializers.CharField(required=True, max_length=50)
type = serializers.CharField(required=True, max_length=50)
server_ip = serializers.CharField(required=True, max_length=16)
最后安装httpie模块便于对api进行调试
pip3 install httpie
然后就可以运行了。这就是一个最简单的restful实现。访问Django的url试试
是不是简单粗暴,当然,生产环境中的实际运行代码会比这个复杂的多,生产环境需要建立很多表,表之间需要建立很多外键关联等。
这里只是简单实现一个基本功能,希望能给各位以参考。
Restful参考链接:
http://www.cnblogs.com/zivwong/p/7417989.html