前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django-DRF | 请求

Django-DRF | 请求

作者头像
小团子
发布2020-02-11 16:40:12
6080
发布2020-02-11 16:40:12
举报
文章被收录于专栏:数据云团数据云团

Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

常见的http请求method,是get和post方式,除此之外还有head\option\delete\put\patch等方式。默认输入url的请求方式即为get,当请求方式为get时,若带有需要传递的其他参数,则会将该参数的name和value补充在url中一并提交,post方式则将数据放在内容中一并提交,不再url中显示。在浏览器发送的request数据包的header中,可以看到这些内容,例如:

一、CBV

视图里使用类处理请求,在url中一个路径对应一个类。

代码语言:javascript
复制
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.IndexView.as_view())     # 执行类后面的as_view()方法,是父类里面的方法
]

视图函数

代码语言:javascript
复制
from django.views import View
from django.http import HttpResponse

class IndexView(View):

    # 以get形式访问会执行get函数,一般情况下获取数据
    def get(self, *args, **kwargs):  
        return HttpResponse('鼠年大吉')

    # 以post形式访问的话会执行post函数,一般情况下发送数据
    def post(self, *args, **kwargs):  
        return HttpResponse('万事顺心')
  • cbv 定义类需要继承 View
  • url中需要添加 as_view()
  • 类里面使用 from 表单提交,只有 get 和 post 方法
  • 类里面使用 ajax 发送数据,支持 restful 规范

'get'获取数据;'post'创建新数据;'put'更新;'patch'局部更新;'delete'删除;

CBV 重新定义 dispatch 函数

所有方法都是通过 dispatch 这个函数反射执行,要想在 get 或 post 方法前执行其它步骤,可以重写 dispatch。

代码语言:javascript
复制
class IndexView(View):

    # 重写父类的dispatch方法,如果不重写,会执行父类的dispatch方法,
    def dispatch(self, request, *args, **kwargs):
        print('之前')
        res = super(IndexView, self).dispatch(request, *args, **kwargs)
        print('之后')
        return res
        
    # 以get形式访问会执行get函数,一般情况下获取数据
    def get(self, *args, **kwargs):  
        return HttpResponse('鼠年大吉')

    # 以post形式访问的话会执行post函数,一般情况下发送数据
    def post(self, *args, **kwargs):  
        return HttpResponse('万事顺心')

二、FBV

视图里使用函数处理请求,在url中一个路径对应一个函数。

代码语言:javascript
复制
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index)
]

视图函数

代码语言:javascript
复制
def index(request):
    return render(request, 'index.html')
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CBV
  • CBV 重新定义 dispatch 函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档