zoukankan      html  css  js  c++  java
  • Django REST framework

    如果要在django项目实现restful api, 那么一个方便的做法就是使用django rest framework这个app。

    http://www.django-rest-framework.org/

    1.安装##

    
    pip install djangorestframework
    
    

    就像安装普通应用一样

    然后修改项目的settings.py

    
    INSTALLED_APPS = {
    
        ...
    
        'rest_framework',
    
    }
    
    

    如果你还要使用rest_framework的browserable API(这个可以在浏览器中查看), 那么你可能也要添加登录views.在urls.py中添加

    
    urlpatterns = {
    
        ...
    
        url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framwork')),
    
    

    2.示例##

    首先建立一个项目和应用:

    
    django-admin startproject rest
    
    cd rest
    
    django-admin startapp post
    
    python manage.py migrate
    
    

    然后跟着1里面的步骤安装rest_framework

    接着我们在post/models.py里面建立我们的Post对象:

    
    from django.db import models
    
    class Post(models.Model):
        title = models.CharField(max_length=40)
        content = models.TextField()
    

    settings.py:

    
    INSTALLED_APPS = [
    
        ...
    
        'post.apps.PostConfig',
    
    ]
    
    

    为了方便我们创建一个admin用户并且添加post对象:

    
    python manage.py createsuperuser
    
    

    post/models.py

    
    from django.contrib import admin
    from .models import Post
    
    admin.site.register(Post)
    

    将post对象迁移到数据库

    
    python manage.py makemigrations post
    
    python manage.py migrate
    
    

    然后通过在admin视图里面建立几个post对象。

    下面我们要建立post对象的链接,这个是rest_framework需要用来控制post对象。

    新建post/serializers.py

    
    from rest_framework import serializers
    from .models import Post
    
    class PostSerializer(serializers.HyperlinkedModelSerializer):
        class Meta:
            model = Post
            fields = ('title', 'content', 'pub_date')
    

    然后要显示这些需要写viewset, 就相当于集成了rest操作的视图集。

    
    from django.shortcuts import render
    from rest_framework import viewsets
    from .models import Post
    from .serializers import PostSerializer
    
    class PostViewSet(viewsets.ModelViewSet):
        queryset = Post.objects.all()
        serializer_class = PostSerializer
    

    然后使用rest_framework的router, 就不用我们自己配置urls了

    建立post/urls.py

    
    from django.conf.urls import url, include
    from rest_framework import routers
    from .views import PostViewSet
    
    router = routers.DefaultRouter()
    router.register(r'posts', PostViewSet)
    
    urlpatterns = [
       url(r'^', include(router.urls)),
    ]
    
    
    urlpatterns = [
    
        url(r'^post/', include('post.urls'))
    
    ]
    
    

    到这里就可以了。

    
    python manage.py runserver
    
    

    然后打开浏览器: localhost:8000/post/posts

    就可以看到Django REST framework的视图,并且显示了你的Post对象,而且提供了GET, POST等RESTful操作。

  • 相关阅读:
    【转】依赖注入那些事儿
    【转】Visual Studio單元測試小應用-測執行時間
    【转】 代码设计敏捷开发三部曲
    【转】 c#中两个DateTimePicker,一个时间设置为0:0:0,另一个设置为23:59:59
    【转】 C#获取当前程序运行路径的方法集合
    CSVHelper读出乱码 解决方案
    CvsHelper 使用指南
    【转】 C# ListView实例:文件图标显示
    【转】C# winform 加载网页 模拟键盘输入自动接入访问网络
    基于MHA的MySQL高可用
  • 原文地址:https://www.cnblogs.com/wenning/p/5423918.html
Copyright © 2011-2022 走看看