django之rest-framework

django的rest-framework是django很贴心的为我们准备的一个实例化app

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

安装这个app

pip install djangorestframework

安装好之后需要我们在项目的setting里面注册这个app

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘app01.apps.App01Config‘,
    "rest_framework",
]

现在我们就可以使用他的功能了,在使用之前我们可以先来看下我们之前是怎么来序列化的,先导入一些测试的数据:

from django.db import models

# Create your models here.

class Book(models.Model):
    title=models.CharField(max_length=32)
    price=models.IntegerField()
    pub_date=models.DateField()
    publish=models.ForeignKey("Publish")
    authors=models.ManyToManyField("Author")
    def __str__(self):
        return self.title

class Publish(models.Model):
    name=models.CharField(max_length=32)
    email=models.EmailField()
    def __str__(self):
        return self.name

class Author(models.Model):
    name=models.CharField(max_length=32)
    age=models.IntegerField()
    def __str__(self):
        return self.name

首先我们看下我们可以使用的第一种方式:

from django.views import View
from app01.models import *
import json

class PublishView(View):

    def get(self,request):
        # 方式一
        # publish_list = list(Publish.objects.all().values("id","name"))
        # 或者也可以这样
        publish_list = Publish.objects.all()
        tem = []
        for obj in publish_list:
            tem.append({
                "id":obj.pk,
                "name":obj.name
            })

        # return HttpResponse(json.dumps(publish_list))
        return HttpResponse(json.dumps(tem))

原文地址:https://www.cnblogs.com/cuilinpu/p/10356778.html

时间: 2024-11-15 22:32:40

django之rest-framework的相关文章

django的rest framework框架——04

一.rest framework的分页 1.使用rest framework内置类PageNumberPagination实现分类 from django.conf.urls import url from api import views urlpatterns = [ url(r'^(?P<version>[v1|v2]+)/pager1/$', views.Pager1View.as_view()), ] urls.py from rest_framework.views import

基于Django的Rest Framework框架的序列化组件

本文目录 一 Django自带序列化组件 二 rest-framework序列化之Serializer 三 rest-framework序列化之ModelSerializer 四 生成hypermedialink(极少数) 五 序列化组件之请求数据校验和保存功能 序列化组件源码分析 回到目录 一 Django自带序列化组件 详见 回到目录 二 rest-framework序列化之Serializer models部分: from django.db import models # Create

基于Django的Rest Framework框架的认证组件

0|1一.认证组件的作用 在一个程序中有一些功能是需要登录才能使用的,原生Django中的auth组件可以用来解决这个认证问题,drf框架中也有对应的认证组件来解决这个问题. models.py from django.db import models # Create your models here. class User(models.Model): name = models.CharField(max_length=16) pwd = models.CharField(max_leng

基于Django的Rest Framework框架的频率组件

0|1一.频率组件的作用 在我们平常浏览网站的时候会发现,一个功能你点击很多次后,系统会让你休息会在点击,这其实就是频率控制,主要作用是限制你在一定时间内提交请求的次数,减少服务器的压力. modles.py 0|1二.自定义频率组件类 #(1)取出访问者ip # (2)判断当前ip不在访问字典里,添加进去,并且直接返回True,表示第一次访问,在字典里,继续往下走 # (3)循环判断当前ip的列表,有值,并且当前时间减去列表的最后一个时间大于60s,把这种数据pop掉,这样列表中只有60s以内

Django学习之Rest Framework 的Token验证功能优化详解

本文和大家分享的主要是django 中Rest Framework的Token相关内容,一起来看看吧,希望对大家 学习django有所帮助. api 的通信采用 token + ssl ,简化和方便线上脚本的调用. Django 版本 1.8.16 ,djangorestframework 版本 3.5.3 ,用了框架提供的 rest_framework.authtoken.views.obtain_auth_token 和rest_framework.authentication.TokenA

Django rest framework介绍

1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational State Transfer的简称,中文翻译为“表征状态转移”) 2. REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识 3. 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 4. 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资源架

Django rest framework 基础

1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational State Transfer的简称,中文翻译为“表征状态转移”) 2. REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识 3. 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性 4. 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资

Using the Django authentication system

Using the Django authentication system This document explains(解释) the usage(使用) of Django’s authentication system(用户认证系统) in its default configuration(默认配置). This configuration has evolved to serve the most common project needs, handling a reasonably

Django添加Last-Modified和ETag

用Django REST Framework做的REST API,其中有个API有这样的需求: APP端请求这个API,服务器端从数据库读数据,返回json.返回的数据量稍微有些大,但是可能一年才修改一次,所以希望能够仅在数据修改的时候才传输数据,让APP端更新. 1. Last-Modified和ETag HTTP响应头Last-Modified和ETag都能实现这个需求,关于二者的详细解释,这篇文章说的简单明了:http://www.iwms.net/n2029c12.aspx 原文摘抄如下

django internal search

最近改进了项目中的站内搜索的功能,增加了全文索引,提升了搜索速度.因为项目框架是django,所以采用django+haystack+pyelasticsearch+elasticsearch的方式实现. django作为Web framework,采用MVC设计模式,非常易于开发数据库驱动的网站. haystack是django的搜索插件,提供一套统一的API,用于驱动搜素引擎创建索引,进行搜素.可适用的搜素引擎包括whoosh,ES,Solr等. pyelasticsearch主要提供pyt