十八、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
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号