zoukankan      html  css  js  c++  java
  • Django的RestfulAPI框架RestFramework

    Django的Restful-API框架


    安装框架

    #sudo pip3 install django
    #sudo pip3 install markdown
    #sudo pip3 install djangorestframework 
    

    启动项目

    #django-admin.py startproject MyRestSite
    #cd MyRestSite
    #python manage.py makemigrations
    #python manage.py migrate
    #python manage.py createsuperuser
    

    配置文件settings.py

    # Application definition
    
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'rest_framework',
    )
    
    REST_FRAMEWORK = {
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
        ]
    }
    

    编写模型

    models.py

    class TableName(models.Model):
        xxx = xxxx(xxx=xxx)
        class Meta:
            xxxxxxx
    

    模型序列化

    serializers.py

    from rest_framework import serializers
    class TableNameSerializer(serializers.ModelSerializer):
        class Meta:
            model = TableName
            fields = ('xxxx', 'xxxxx', 'xxxx', 'xxxxx')
    

    视图路由

    views.py

    from rest_framework.renderers import JSONRenderer
    from rest_framework import serializers
    class JSONResponse(HttpResponse):
        """
        用于返回JSON数据.
        """
    
        def __init__(self, data, **kwargs):
            content = JSONRenderer().render(data)
            kwargs['content_type'] = 'application/json'
            content='{"xxxxx":'+content+'}'
            super(JSONResponse, self).__init__(content, **kwargs)
    
    @csrf_exempt
    def xxxxxxxxx(request,xxxxxxxxxx):
    
        if request.method == 'GET':
           ...
            return JSONResponse(serializer.data)
    

    路由转发

    urlpatterns = [
        ...
        url(r'^api/x/xxxxx/xxxxx$', xxxxxxxs),
    ]
    

    测试运行

    #python3 ./manage.py runserver
    # curl -H 'Accept: application/json; indent=4' -u username:password http://127.0.0.1:8000/apiurls/
    

  • 相关阅读:
    最详细的Vue Hello World应用开发步骤
    SAP Fiori + Vue = ?
    golang--连接redis数据库并进行增删查改
    golang--redis基本介绍
    golang--海量用户即时通讯系统
    (四十六)golang--网络编程(简易的聊天系统)
    动态规划--矿工挖矿
    (四十五)golang--反射
    动态规划--爬楼梯问题(入门)
    (四十四)golang--协程(goroutine)和管道(channel)相结合实例
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/9102435.html
Copyright © 2011-2022 走看看