您的位置:首页 > 编程语言 > Go语言

Django restframework入门示例

2015-12-16 00:44 501 查看
1.前提

官网地址为:http://www.django-rest-framework.org/

官方推荐安装以下安装包:

Markdown

URL:https://pypi.python.org/pypi/Markdown/

django-filter

URL:https://pypi.python.org/pypi/django-filter

django-crispy-forms

URL:https://github.com/maraujop/django-crispy-forms

django-guardian

URL: https://github.com/django-guardian/django-guardian
最后是restframework自身的下载地址:

djangorestframework

URL: https://pypi.python.org/pypi/djangorestframework/3.2.3
2.配置过程:

a.在settings.py做如下配置:

INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'app',

    'rest_framework',

)

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'

    ],

    'DEFAULT_RENDERER_CLASSES': (

        'rest_framework.renderers.JSONRenderer',

    ),

    'DEFAULT_PARSER_CLASSES': (

        'rest_framework.parsers.JSONParser',

    )

}

标红处为需要手动添加的配置。

b.假设我们的restfulurl均已testrest开头,则主urls.py文件做如下配置:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',

    # Examples:

    # url(r'^$', 'djangolearn.views.home', name='home'),

    # url(r'^blog/', include('blog.urls')),

    url(r'^testrest/', include('app.urls')),

)

即以testrest开头的url均转给应用"app"进行处理

c.app的urls.py的配置如下:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',

    url(r'^getUserList/$', 'app.views.getUserList'),

    url(r'^setUser/$', 'app.views.setUser'),

)

这就是我们的主人翁,一个获取用户列表的方法,一个设置用户的方法。

d.views.py中的代码如下:

from django.shortcuts import render,render_to_response
from django.template import RequestContext
from rest_framework import request
from rest_framework import permissions
from rest_framework.response import Response
from rest_framework.decorators import api_view, permission_classes
import json

@api_view(http_method_names=['GET'])
@permission_classes((permissions.AllowAny,))
def getUserList(request):
return Response([
{"name":"admin","password":"123"},
{"name":"auditor","password":"456"},
])

@api_view(http_method_names=['POST'])
@permission_classes((permissions.AllowAny,))
def setUser(request):
return Response({
"data":request.data,
"test":"111"
})


可以看到,getUserList为GET请求;而setUser为POST请求。

e.用restclient工具分别发送请求效果如下:

GET请求http://localhost:8082/testrest/getUserList/:



POST请求http://localhost:8082/testrest/setUser/



强调两点:

1.我这个只是个示例,所以permission设为了any即任意人都可以发送rest请求;但实际使用场景中,应该用restframework的校验模块的

2.示例中逻辑都在views.py中,实际场景中views中的逻辑不易过多;数据的处理应该主要是在models.py中处理,然后views调用models.py中的方法,得到数据结果,最后进行返回
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: