Django-rest-framework 的使用

安装:

Install using pip, including any optional packages you want...

pip install djangorestframework
pip install markdown       # Markdown support for the browsable API.
pip install django-filter  # Filtering support

获取代码

...or clone the project from github.

git clone [email protected]:tomchristie/django-rest-framework.git

setting 配置

INSTALLED_APPS = (
    ...
    ‘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‘
    ]
}
If you‘re intending to use the browsable API you‘ll probably also want to add REST framework‘s login and logout views. Add the following to your root urls.py file.

urlpatterns = [
    ...
    url(r‘^api-auth/‘, include(‘rest_framework.urls‘, namespace=‘rest_framework‘))
]

Example

url配置

from rest_framework import routers
from crm.rest_views import UserViewSet,RoleViewSet
# Routers provide an easy way of automatically determining the URL conf.
  router = routers.DefaultRouter()
  router.register(r‘users‘, UserViewSet)
  router.register(r‘roles‘, RoleViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r‘^api/‘, include(router.urls)),    url(r‘^apitest/‘, views.api_test  ),    url(r‘^api-auth/‘, include(‘rest_framework.urls‘, namespace=‘rest_framework‘))
]
rest_serializer配置数据序列化

rom crm import models
from rest_framework import serializers

# Serializers define the API representation.
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.UserProfile
depth = 3
fields = (‘url‘, ‘email‘, ‘name‘, ‘is_staff‘,‘is_active‘,‘role‘)

class RoleSerializer(serializers.ModelSerializer):
class Meta:
model = models.Role
fields = ("name",)

如果是外检 需要导入表
rest_views配置
from crm import models
from crm.rest_serializer import UserSerializer,RoleSerializer
from rest_framework import viewsets
class UserViewSet(viewsets.ModelViewSet):
    queryset = models.UserProfile.objects.all()
    # 取到数据
    serializer_class = UserSerializer
#     序列化

class RoleViewSet(viewsets.ModelViewSet):
    queryset = models.Role.objects.all()
    serializer_class = RoleSerializer
views 视图
def api_views(request):    if request.method=="POST":        data = json.loads(request.POST.get(‘data‘))        print(data)        serialize_obj=rest_serializer.UserSerializer(data=data)        if serialize_obj.is_valid():            serialize_obj.save()

    return render(request,‘crm/api-test.html‘,locals())
api_test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method="POST">
        {% csrf_token %}
        <textarea name="data" cols="88" rows="6"></textarea>
        <input type="submit" >
    </form>
{{ serialize_obj }}
</body>
</html>

初步研究

官网文档  http://www.django-rest-framework.org/

时间: 2024-12-16 01:44:10

Django-rest-framework 的使用的相关文章

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable

django rest framework 入门

django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangopythonrest framework ************************************ 广告时间: 海淘导航网站推荐:海淘库:http://www.haitaocool.com/ 需要的请收藏哦 ************************************ 1.

Django rest framework 使用自定义认证方式

Django rest framework 使用自定义认证方式 Django使用自定义认证方式 介绍了 "Django使用自定义认证方式",这一篇说说怎样在前一篇的基础上提供rest api. 修改settings.py中INSTALLED_APPS,添加 'login' app. 给login app增加serializers.py文件 #coding:utf-8 from django.contrib.auth.models import User from rest_framew

Django REST framework 的TokenAuth认证及外键Serializer基本实现

一,Models.py中,ForeignKey记得要有related_name属性,已实现关联对象反向引用. app_name = models.ForeignKey("cmdb.App",related_name='deploy_app', verbose_name="App") 二,Settings.py文件中,加入对Django REST framework的基本设置. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSE

Python【第二十四课】Django rest framework

本节内容 Django rest framework 安装 Django rest framwwork 环境配置 简单举例说明 Django中使用 rest framework 1.1 安装 Django rest framework 建立新的环境 virtualenv env source env/bin/activate 安装 djangorestframework 模块 pip install django pip install djangorestframework pip insta

Django——REST framework

1. 什么是REST REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态

在 Django REST framework 善用 SerializerMethodField 来优化不必要的查询

在 Django REST framework 善用 SerializerMethodField 来优化不必要的查询 首先来看一个例子,在一般情况下,对于有父子关系的对象,我们使用下面的方法来创建类. 一个Article类,一个Article对象可以有多个Comment实例,那么Django中类的定义如下: #coding:utf-8 from django.db import models from django.contrib.auth.models import User class Ar

Django rest framework __str__ returned non-string (type NoneType)

Django rest framework __str__ returned non-string (type NoneType) 原创 2017年11月01日 20:49:13 转至:http://blog.csdn.net/jiangbo721/article/details/78418501 在刚开始设计 测试的时候容易出现这个错误 如果是这样的话就在admin后台把帐号退掉, 然后在进入对应页面就可以了,具体原因也不知道 感觉像是获取用户失败 ______________________

Django REST framework反向生成url

Django REST framework是一个基于Django的框架,REST framework又是怎么反向生成url的呢?? 在前面的例子中,知道在REST framework中有6种版本控制的方式,进入任意一种版本控制的源码中, class QueryParameterVersioning(BaseVersioning): """ GET /something/?version=0.1 HTTP/1.1 Host: example.com Accept: applic

Getting Started with Django Rest Framework and AngularJS

转载自:http://blog.kevinastone.com/getting-started-with-django-rest-framework-and-angularjs.html A ReSTful API is becoming a standard component of any modern web application. The Django Rest Framework is powerful framework for developing ReST endpoints