带你进入restframework-创新互联

这边声明一下,以下是参考官方文档来的。

成都创新互联公司专注于企业营销型网站建设、网站重做改版、上饶网站定制设计、自适应品牌网站建设、html5商城网站制作、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为上饶等各大城市提供网站开发制作服务。


新建项目

新建名为dimples的django项目

在其中建立一个名为astart的APP:

新建目录
# 新建目录mkdir dimplescd dimples
新建虚拟环境
virtualenv envenv\Scripts\activate
在虚拟环境中安装依赖
pip install django
pip install djangorestframework
新建项目
django-admin.py startproject dimples .  
cd dimples
django-admin.py startapp astart
cd ..
创建表
python manage.py migrate
创建管理员
python manage.py createsuperuser

序列化

首先创建一个文件dimples/astart/serializers.py来编写序列化相关的代码:

from django.contrib.auth.models import User, Groupfrom rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

HyperlinkedModelSerializer: 建立超链接关系。

dimples/astart/views.py

编写视图文件

from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom dimples.astart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):
    """
    查看、编辑用户的界面
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet):
    """
    查看、编辑组的界面
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

ViewSets:封装许多常见的操作,减少重复代码。 保持代码的简洁以及逻辑的清晰。

dimples/urls.py:
from django.conf.urls import url, includefrom rest_framework import routersfrom dimples.astart import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)# 使用URL路由来管理我们的API# 另外添加登录相关的URLurlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

使用了ViewSets可以通过使用Router类来自动生成URL配置信息。

Settings

启用分页功能 以及 只有管理员能访问

INSTALLED_APPS = (
    ...    'rest_framework',
)

REST_FRAMEWORK = {    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),    'PAGE_SIZE': 10}

测试

Terminal中输入

python ./manage.py runserver

使用命令行工具访问API

http -a dimples:111111 http://127.0.0.1:8000/users/
(venv) C:\Users\Administrator\PycharmProjects\dimples>http -a dimples:111111 http://127.0.0.1:8000/user/HTTP/1.0 200 OKAllow: GET, HEAD, OPTIONS
Content-Length: 91Content-Type: application/jsonDate: Wed, 20 Sep 2017 11:31:17 GMTServer: WSGIServer/0.1 Python/2.7.13Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

{    "groups": "http://127.0.0.1:8000/user/groups/",    "users": "http://127.0.0.1:8000/user/users/"}

确保登录状态下打开浏览器 127.0.0.1:8000/users/


创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


网页名称:带你进入restframework-创新互联
本文链接:http://scjbc.cn/article/doeoei.html

其他资讯