1. Rsetful-api
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
也是可以理解为URL(统一资源定位符)设计标准,
URI(Uniform Resource Identifier,统一资源标识符)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。
URL(Uniform Resource Locator,统一资源定位符),最常见的形式是 URI,经常指定为非正式的网址。
URN(Uniform Resource Name,统一资源名称),其目的是通过提供一种途径,用于在特定的命名空间资源的标识,以补充网址。
1.每一个URL都是一个资源.
2.我们操作网站的时候就是对资源进行一个增删查改的操作.
3.传统的方法就是对增删查改配置4个URL,而 Rsetful一条url下使用多个方法来表达对资源的操作
2.Django的rustful 框架DRF
DRF:djgnfo-restful-framewor
DRF思维导图
DRF官网:https://www.django-rest-framework.org/
pip install djangorestframework
pip install markdown # Markdown support for the browsable API可浏览API的标记支持
pip install django-filter # Filtering support过滤的支持
也可以打开pycharm,新建django项目,然后手动进行pycharm设置中手动下载库djangorestframework;
Markdown ;django-filter
官方文档之快速搭建
首先在pycharm里面tools菜单中run manage.py,然后新建一个app
manage.py@drf4 > startapp game
添加’rest_framework’到您的INSTALLED_APPS设置。
INSTALLED_APPS = (
...
'rest_framework', #添加'rest_framework'进行管理
)
如果您打算使用可浏览的API,您可能还需要添加REST框架的登录和注销视图。将以下内容添加到根urls.py文件中。
from django.conf.urls import include #新增库
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r"^game/"),include("game.urls"), #这里是你自己新建的app中的新建的urls
]
请注意,URL路径可以是您想要的任何内容。
例
让我们看一个使用REST框架构建一个简单的模型支持API的快速示例。
我们将创建一个读写API,用于访问有关项目用户的信息。
REST框架API的任何全局设置都保存在名为的单个配置字典中REST_FRAMEWORK。首先将以下内容添加到settings.py模块中:
#这是权限配置,放在setting.py里面,即第三方的库配置都是放在setting里面
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'
]
}
不要忘记确保你也加入rest_framework了你的INSTALLED_APPS。
我们现在准备创建我们的API了。这是我们新建app的根新建的urls.py模块:
from django.conf.urls import url, include
from rest_framework import routers, serializers, viewsets
from game.views import UserViewSet
# 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'))
]
在新建的app中的views中:
from django.contrib.auth.models import User
from rest_framework import serializers, viewsets
# 做序列化
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User # model 把表格模型拿来功能
fields = ('url', 'username', 'email', 'is_staff') #开启那几个字段做表单验证‘,如果后面没有应用,需删除相应的,不然有可能报错’
# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
首先迁移数据一下:在tools菜单中run manage.py中 migrate
您现在可以在浏览器中打开API,网址为http://127.0.0.1:8000/game/users,并查看新的“用户”API。如果您使用右上角的登录控件,您还可以从系统添加,创建和删除用户。