给我一个作业,其中我必须使用Django技术创建应用程序API(REST)。我只需要能够从多个模型中读取(获取)条目,将它们加入并使用JSON格式(一个或多个对象)返回它们。 我已经给出了json模式和适当的json文件的示例。

由于这是我第一次创建API,并且我对Django不太熟悉,所以请您提供一些指导。

我用Google搜索了两个最受欢迎的框架:

  • Tastypie
  • Django REST framework

  • 如我所见,这两个使您能够快速为应用程序设置API。但是我可以使用其中一种创建自定义JSON格式,还是有另一种方法呢?

    最佳答案

    使用Tastypie:-

    models.py

    class User(Document):
        name = StringField()
    

    api.py
    from tastypie import authorization
    from tastypie_mongoengine import resources
    from project.models import *
    from tastypie.resources import *
    
    class UserResource(resources.MongoEngineResource):
    class Meta:
        queryset = User.objects.all()
        resource_name = 'user'
        allowed_methods = ('get', 'post', 'put', 'delete','patch')
        authorization = authorization.Authorization()
    

    url.py
    from tastypie.api import Api
    from projectname.api import *
    
    v1_api = Api(api_name='v1')
    v1_api.register(UserResource())
    

    Javascript(jQuery)

    这个例子是一个GET请求:
    $(document).ready(function(){
        $.ajax({
           url: 'http://127.0.0.1:8000/api/v1/user/?format=json',
           type: 'GET',
           contentType: 'application/json',
           dataType: 'json',
           processData: false,
           success: function(data){
               alert(data)
           //here you will get the data from server
           },
           error: function(jqXHR, textStatus, errorThrown){
                  alert("Some Error")
           }
        })
    })
    

    对于POST请求,将类型更改为POST并以正确的格式发送data
    有关更多详细信息,请参见Tastypie docs

    10-05 22:32
    查看更多