首页
学习
活动
专区
圈层
工具
发布

Django中请求的生命周期

概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串. 在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中....当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django...render(request, "cbv.html") def post(self,request): return HttpResponse("cbv.get") cbv.html...如果是客户端以post的方式提交请求,就执行类中的post方法; 如果是客户端以get的方式提交请求,就执行类中的get方法 然后查找用户发过来的url,然后在类中执行对应的方法查询生成用户需要的数据....从Django中返回的响应内容包含响应头和响应体 在Django中,有的时候一个视图函数,执行完成后会使用HttpResponse来返回一个字符串给客户端.

2.9K100

Django的请求生命周期

概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串. 在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中....当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django...如果是客户端以post的方式提交请求,就执行类中的post方法; 如果是客户端以get的方式提交请求,就执行类中的get方法 然后查找用户发过来的url,然后在类中执行对应的方法查询生成用户需要的数据....对于from表单来说,提交数据只有get和post两种方法 另外的方法可以通过Ajax方法来提交 服务端根据个人请求信息的不同来操作数据库,可以使用原生的SQL语句,也可以使用Django的ORM语句....从Django中返回的响应内容包含响应头和响应体 在Django中,有的时候一个视图函数,执行完成后会使用HttpResponse来返回一个字符串给客户端.

65520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python测试开发django-73.django视图 CBV 和 FBV

    CBV(class base views) 就是在视图里使用类处理请求,这是面向对象的编程方式。...FBV 模式 FBV(function base views)在views.py文件中定义视图函数来处理用户请求,函数中通过 if 判断 request.method 请求方式是 GET 还是 POST...,而不是通过很多if判断,提高代码可读性 CBV 模式继承的View类提供了多种请求方式对应的响应函数不需要在进行判断,可以直接在子类重写继承的方法 CBV 模式子类继承重写父类请求方式的响应函数通过父类...dispatch 方法进行反射分发 在 urls.py 路由系统中必须使用 Myview.as_view() 替代视图函数 # views.py from django.shortcuts import...另外通过 CBV 如果想要在执行get或post方法前执行其他步骤,可以重写dispatch。

    63110

    『Django』视图views

    在 Django 中,主要有两种类型的视图: FBV:基于函数的视图 CBV:基于类的视图 FBV(Function-Based Views)和CBV(Class-Based Views)是两种处理视图的方式...在CBV中,每个视图通常是一个类方法,用于处理不同类型的 HTTP 请求。CBV提供了更多的灵活性和可扩展性,允许你在不同的方法中组织视图逻辑。...在 Django 中,当你使用类视图时,需要调用 as_view() 方法来将类视图转换为可调用的视图函数。...django.views.View 类提供了一些基本的 HTTP 请求方法(如 GET、POST 等),你可以在子类中覆盖这些方法来处理不同类型的请求。...在函数视图中,通过解析 request 这个参数可以获取到客户端发起的请求方法(通常是 GET 和 POST)。

    35910

    03.Django基础三之视图函数

    为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。...cbv的实现原理通过看django的源码就很容易明白,大体就是由url路由到这个cbv之后,通过cbv内部的dispatch方法进行分发,将get请求分发给cbv.get方法处理,将post请求分发给cbv.post...    类中的方法与独立函数不完全相同,因此不能直接将函数装饰器应用于类中的方法 ,我们需要先将其转换为方法装饰器。     ...(login_test, name='post') post是给post方法加    class IndexView(View):     def get(self,request):       pass...POST 请求可以带有空的 POST 字典 —— 如果通过 HTTP POST 方法发送一个表单,但是表单中没有任何的数据,QueryDict 对象依然会被创建。

    5.4K30

    Django-DRF | 请求

    默认输入url的请求方式即为get,当请求方式为get时,若带有需要传递的其他参数,则会将该参数的name和value补充在url中一并提交,post方式则将数据放在内容中一并提交,不再url中显示。...在浏览器发送的request数据包的header中,可以看到这些内容,例如: 一、CBV 视图里使用类处理请求,在url中一个路径对应一个类。...HttpResponse('万事顺心') cbv 定义类需要继承 View url中需要添加 as_view() 类里面使用 from 表单提交,只有 get 和 post 方法 类里面使用 ajax...发送数据,支持 restful 规范 'get'获取数据;'post'创建新数据;'put'更新;'patch'局部更新;'delete'删除; CBV 重新定义 dispatch 函数 所有方法都是通过...def post(self, *args, **kwargs): return HttpResponse('万事顺心') 二、FBV 视图里使用函数处理请求,在url中一个路径对应一个函数

    76720

    django中CBV

    08.13自我总结 django中CBV 一.django处理业务逻辑的两种方式 FBV (function based views):使用函数来处理业务逻辑 CBV (class based views...):使用类来处理业务逻辑 二.CBV urls.py url(r'^login/', views.Login.as_view()), #类名.as_view() views.py: from django.views...import View class Login(View): def get(self, request): #方法里必须有request来接受传过来的值不然会报错 return...render(request, "login.html") def post(self, request): pass 当请求过来的时候, 会优先判断你的请求方法是GET还是...POST, 如果是GET请求的话, 走GET函数, 反之, 走POSt函数 继承View类的时候会自动对传过来的参数进行判断 注意: form表单的方式, 只支持GET/POST ajax的方式, 全部支持

    44420

    python 终极篇 --- django

    # CBV版添加班级 from django.views import View class AddClass(View): def get(self, request):...注意: 使用CBV时,urls.py中也做对应的修改: # urls.py中 url(r'^add_class/$', views.AddClass.as_view()), CBV简单的流程:    ...                                     fbv本身就是函数,所以与普通函数加装饰器没有任何区别; cbv加装饰器 类中的方法与独立函数不完全相同,因此不能直接将函数装饰器应用于类中的方法...# 使用CBV时要注意,请求过来后会先执行dispatch()这个方法,如果需要批量对具体的请求处理方法,如get,post等做一些操作的时候,这里我们可以手动改写dispatch方法,这个dispatch...POST 请求可以带有空的 POST 字典 —— 如果通过 HTTP POST 方法发送一个表单,但是表单中没有任何的数据,QueryDict 对象依然会被创建。

    1.9K10

    不会DRF?源码都分析透了确定不来看?

    快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 models.py postman测试 CBV源码流程分析...序列化: 在Django中获取到的数据默认是模型对象(QuerySet对象),但是模型对象数据无法直接提供给前端或别的平台使用,我们需要把数据进行序列化,变成字符串或json数据提供给前端或其他平台;...第二个参数是函数内存地址,CBV的底层也是FBV,as_view是类的绑定方法,自己的类中没有去父类(View)找,as_view()执行完,也是一个内存地址,内存地址是谁的?...,Test没有as_view方法,去继承的APIView中找,这次不需要和Django一样去View中找了,庆幸的是APIView中有as_view方法,核心源码如下: @classmethod...提交的数据都在data中 ps:原来提交的数据在request.POST里,有局限性只能处理urlencoded和formdata编码格式,json格式不能处理,是没有request.data的,request

    1.5K10

    WEB框架本质和第一个Django实例

    render(request, "cbv.html") def post(self,request): return HttpResponse("cbv.get") cbv.html...type="submit"> 启动项目,在浏览器中输入http://127.0.0.1:8000/cbv/,回车,得到的网页如下: 在input框中输入”hello”...如果是客户端以post的方式提交请求,就执行类中的post方法; 如果是客户端以get的方式提交请求,就执行类中的get方法 然后查找用户发过来的url,然后在类中执行对应的方法查询生成用户需要的数据....反射的方式找到类中对应的方法并执行 类中的方法执行完毕之后,会把客户端想要的数据返回给dispatch方法,由dispatch方法把数据返回经客户端 例子,把上面的例子中的视图函数修改成如下: from...return render(request, "cbv.html") def post(self,request): return HttpResponse("cbv.get"

    1.8K40
    领券