#Django的rustful 框架基础

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。如果您使用右上角的登录控件,您还可以从系统添加,创建和删除用户。
在这里插入图片描述

<

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值