十八、Django之Http

1、Django请求的生命周期

请求响应Http

1、发送Http请求

请求头(包含Cookie)
            \r\n\r\n
           请求体

2、服务器请求,根据请求头中的url在路由关系表中进行匹配(从上到下)

3、匹配成功后,执行指定的views函数

a. Url -> 函数 ==> FBV
b. Url -> 类 ==> CBV

4、 响应内容

响应头
         \r\n\r\n
         响应体

def index(request):
	ret = HttpResponse('abcdefghijk...')
	ret['key1'] = 'value1'
	ret['key2'] = 'value2'
	ret.set_cookie('c1','v1')
	ret.set_cookie('c2','v2')
# """
#		头:
#			key1=value1
#			key2=value2
#			cookies={'c1':'v1','c2':'v2'}
#		体:
#			abcdefghijk...
#	"""
	return ret

2、FBV

3、CBV

自定义一个继承django.views.generic的View的类,重写get和post方法:

from django.views.generic import View

class CBV(View):
    def get(self,request):
        return HttpResponse('CBV.GET')

	def post(self,request):
        return HttpResponse('CBV.POST')

urls路由配置中,用上述创建的类的as_view()方法响应某个url

urlpatterns = [
    ...
    url(r'^cbv$', views.CBV.as_view()),
    ...
]

#在过往的django版本中,引入View,是from django.views import View。
#在自己的django 1.9.5中,引入View,是form django.views.generic import View。

4、业务处理

a. 根据个人需求自定
b. 操作数据库
○ ①原生SQL
○ ②Django ORM

posted @ 2024-02-11 23:09  Bruce_JRZ  阅读(26)  评论(0)    收藏  举报