FBV:Function base views
def index(request):
    if request.method == 'POST':
        return HTTPresponse(‘ok’)
    elif request.method == 'GET':
        return render(request,'index.html')

CBV : class base views
URLS:    
    urlpatterns=[
        url(r'^index/',views.Index.as_view())
    ]
    注:url(r'^index/',views.Index.as_view())是固定用法

views.py
from django import views
class Index(views.View):
    def get(self,request):
        return render(request,'index.html')
        
    def post(self,request):
        print(request.POST)
        return render(request,'index.html')
        
    注意事项:
        1.CBV定义时一定要继承django.views.View
        2.注册路由的时候要写类名 .as_view()
        3.具体原理:dispatch()方法中利用反射找到每个请求要执行的
    
    2.前后端分离
        1.前端:
            - APP
            - PC网站    
            - 移动端网站
    
        2.后端提供    JSON格式数据
        
        3.接口(API)是什么?
            URL
        4.小项目
            1. 使用Django 的视图 自己序列化
                1. HttpResponse
                2. JsonResponse
            2. 使用Django REST Framework 框架的序列化工具类
                1. 安装
                    pip install djangorestframework
                2. 导入
                    from rest_framework import serializers
                3. 使用
                    class ArticleSerializer(serializers.Serializer):

官方网址:

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

中文文档:

https://q1mi.github.io/Django-REST-framework-documentation/

实例:
from django.http import JsonResponse
from app01 import models
from rest_framework import serializers
class DBG(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField()
create_time = serializers.DateField()
update_time = serializers.DateField()
type = serializers.CharField(source='get_type_display')
school = serializers.CharField(source="school.name") #和ORM类绑定的序列化
class CYM(serializers.ModelSerializer): class Meta:
model = models.Article #绑定的哪一个类
fields = '__all__'  #['id','name','title']
depth = 1 #官方推荐不超过10层 有外键关联时,才需要设置depth参数! def list1(request):
query_set = models.Article.objects.all()
print(query_set)
xbg = CYM(query_set,many = True)
  return JsonResponse(xbg.data,safe=False)

参数解释:

many=True  表示能序列化多个对象

补充知识点:
    1. pip
        1. pip安装包临时指定 从国内的清华pip源下载:
            pip install django==1.11.11 -i https://pypi.tuna.tsinghua.edu.cn/simple
        2. 将虚拟环境的依赖包关系导出到requirements.txt    
            pip freeze > requirements.txt
            
        3. 按照 requirements.txt 安装项目依赖的第三方包
            pip install -r requirements.txt
    2. 在单独py文件运行django orm语句
        import os

if __name__ == "__main__":
            os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_drf.settings")
            import django
            django.setup()

from app01 import models
            ...
    
    3. 可调用对象
        def xx(arg):
            if callable(arg):
                print(arg())
            else:
                print(arg)

xx('呵呵')
        xx(lambda:'嘿嘿嘿')

0731 #Django rest framework的更多相关文章

  1. 使用django rest framework

    django 刚接触,想做一些restful api , google了一下,发现有现成的框架.Django REST framework. 对使用做下记录: 安装 从http://django-re ...

  2. 利用 Django REST framework 编写 RESTful API

    利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framewor ...

  3. django rest framework 入门

    django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...

  4. django rest framework

    Django-Rest-Framework 教程: 4. 验证和权限 作者: Desmond Chen, 发布日期: 2014-06-01, 修改日期: 2014-06-02 到目前为止, 我们的AP ...

  5. django rest framework csrf failed csrf token missing or incorrect

    django rest framework csrf failed csrf token missing or incorrect REST_FRAMEWORK = { 'DEFAULT_AUTHEN ...

  6. Django REST Framework学习——Android使用REST方法访问Diango

    本文更应该叫做Android如何模拟浏览器访问Django服务器后台. 环境为: Android通过HttpClient访问服务器,从Django中获取json数据,解析显示在UI界面上. 问题为: ...

  7. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

  8. Django REST framework使用ViewSets的自定义路由实现过程

    在Django中使用基于类的视图(ClassView),类中所定义的方法名称与Http的请求方法相对应,才能基于路由将请求分发(dispatch)到ClassView中的方法进行处理,而Django ...

  9. Django REST FrameWork中文教程2:请求和响应

    从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象REST框架引入了Request扩展常规的对象HttpRequest,并提供更灵活的请求解析.Request对 ...

随机推荐

  1. django 类通用视图详解

    view() :     该类为所有类视图的父类,处于最底层,仅仅只对请求参数做校验后,给特定请求方法做特定调用. 用法: url中定位到类方法:Aa.as_view() ——> View.as ...

  2. Bootstrap -- 标签属性

    @.aria-label和aria-labelledby 用于屏幕阅读器 原文:https://blog.csdn.net/liuyan19891230/article/details/5045283 ...

  3. 用Java实现一些常见的问题

    八皇后 public class EightQueen { private static final int ROW = 4; private static final int COL = 4; pr ...

  4. echarts Y轴刻度保留几位小数

    yAxis: [ { type: 'value', name: '雨量(mm)', nameLocation: 'start', inverse: true, axisLabel: {         ...

  5. python3----函数(join)

    今天写python 100例时,有个题目是大致是这样的:已知输入形式是1+3+2+1,要求输出形式为1+1+2+3 一开始思路是将输入的字符串用split()函数划分成数组,在对数组进行排序,再用fo ...

  6. VMware Workstation网卡不启动

    故障原因:虚拟机安装完成后,默认网络配置为”NAT”,对应真机的系统服务为“VMware NAT Service”默认情况下该服务启动类型为自动,状态为启动,若该服务未能正常启动则会导致如上报错,手动 ...

  7. 深入理解IEnumerable和IQueryable两接口的区别

    from:http://blog.csdn.net/ydm19891101/article/details/50969323 无论是在ado.net EF或者是在其他的Linq使用中,我们经常会碰到两 ...

  8. android实现卸载提示

    这篇文章是整理的以前用过的一个功能,由于多种原因现在停用了,也希望这篇文章能帮助一些android入门的小童鞋.android是不提供监控卸载自己的功能的,这里使用了监控android日志的功能,an ...

  9. SharePoint服务器端对象模型 之 访问网站和列表数据(Part 4)

    (四)栏/字段 SharePoint中的字段(中文版中叫做"栏")与传统的数据栏类似,也有不同类型的区别,不过SharePoint中内置的栏类型除了按照数据类型(如数字.日期和时间 ...

  10. 《挑战程序设计竞赛》2.1 穷竭搜索 POJ2718 POJ3187 POJ3050 AOJ0525

    POJ2718 Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6509   Acce ...