首页 > 其他分享 >十八、Django之Http

十八、Django之Http

时间:2024-02-11 23:11:06浏览次数:40  
标签:Http 请求 views 十八 ret Django CBV django View

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

标签:Http,请求,views,十八,ret,Django,CBV,django,View
From: https://www.cnblogs.com/zhlforhe/p/18013610

相关文章

  • 十六、Django的ORM(二)
    1、DecimalFieldDecimalField保存浮点型数据比FloatField精确,因为它是以字符串来保存,而FloatField,数据越长,保存得越不精确。2、索引(命中索引)正确使用SQL语言,使查找数据时,用到索引username=models.CharField(...#db_index=True数据库中字段是否可以建立......
  • 十五、Django的ORM
    单表操作1、表记录的添加方式一:Book()+obj.save()b=Book(name="python基础",price=99,author="yuan",pub_date="2017-12-12")b.save()#将b存到数据库方式二:createBook.objects.create(name="linux",price=78,author="HK",pub_date="......
  • 十四、MySQL与Django之Model基础
    数据库Django默认支持sqlite、mysql、oracel、postgresql等数据库1、sqlitedjango默认使用sqlite数据库Django.db.backends.sqlite3DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':os.path.join(BA......
  • 十三、Django Admin
    DjangoAdmin是django项目数据库的一个后台管理工具一、注册models项目中,应用创建之后,应用文件夹就有一个admin.py文件。在admin.py中注册需要在admin后台管理的modelsfromdjango.contribimportadminfromwebimportmodelsadmin.site.register(models.Host)admin.site.......
  • 十二、Django视图函数和模版相关
    视图相关HTTPRequest对象:属性:path函数:get_full_path()HTTPResponse对象:render()render_to_response()locals():局部变量redirect()重定向例子:用户登录成功后跳转deflogin(request):...#判断登录成功后,跳转到indexreturnrender(request,"index.html"......
  • 十、Django静态文件
    django网络相应基础:1、配置url路由在urls.py中urlpatterns添加路径fromdjango.conf.urlsimporturlfromdjango.contribimportadminfromapp01importviewsurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^index.html$',views.index),......
  • 十一、Django url控制系统
    urlpatterns=[url(正则表达式,views视图函数,参数,别名),]匹配1、完全匹配urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^showtime/',views.showtime),url(r'^blog/',include('blog.urls')),url(r'^logi......
  • 九、Django环境搭建(基于anaconda环境)
    Django特点:具有完整的封装,开发者可以高效率的开发项目,Django将大部分的功能进行了封装,开发者只需要调用即可,如此,大大的缩短了开发的时间,同时也因为太多封装导致开发灵活度和项目的运行效率不足。通常在工作中,开发者可以使用Django快速的搭建项目,然后基于项目进行个别部分的效率优......
  • Ubuntu服务器使用 Daphne + Nginx + supervisor部署Django项目
    视频:https://www.bilibili.com/video/BV1e6421G7uM/?vd_source=36191bed2c30378060ff2efe6831b331Django从3.0版开始加入对ASGI的支持,使Django开始具有异步功能。截止目前的5.0版,对异步支持逐步也越来越好,相信在未来的版本中异步将会支持的更加完善。所以说,我们也需要适时的......
  • python3.9+django4.1+vue3 ,后端项目运行时,报错了,WSGI application 'XXX.wsgi.applicat
    python3.9+django4.1+vue3,后端项目运行时,报错了; 报错信息,如下:django.core.exceptions.ImproperlyConfigured:WSGIapplication'StudentMgrBE.wsgi.application'couldnotbeloaded;Errorimportingmodule.     ------------------------------百度......