首页 > 其他 > 详细

Django复习

时间:2019-03-03 12:37:04      阅读:156      评论:0      收藏:0      [点我收藏+]

1、HTTP协议

HTTP协议
    -请求协议(wsgi协议负责拆)
        -请求首行:get/http/1.1
        -请求头部:key:value的形式,有编码方式contenttype,referer,useragent
        -请求体:urlencode编码方式,是可以直接被django解析的,name=lww&name=18,django会拆到大写的POST中
                formdata编码方式:上传文件的,--sfsjf--格式,数据django会拆到POST中,文件会拆到request.FILES中
            json:原生的django处理不了,body体中取出自行处理,drf中可以request.data中可以取出
             PS:前台传过来json格式,每次都要自己取,这样很麻烦,我封装了一个方法paserRequest,将body体中的数据出来放到request.data中再返回request,之后每次需要解析json格式调一下就可以了,后来又给修改成了装饰器,装饰器里面还可以加认证,频率等功能
-响应协议
    -响应首行:HTTP/1.1 200 ok/r/n
    -响应头部:key:value的形式
    -响应体:响应体的内容才是我们看到的html页面的东西,页面渲染出来的东西
  -特性:
    -在tcp/ip协议之上
    -无状态,所以才引出了cookie,cookie不安全,发展到session,session对服务器有压力,又有了token
    -无连接,连一次后直接断开,socket是一直连着
    -请求、响应,发一个请求给一个响应,响应后就断开


服务器主动推送消息:
  1、轮询:用ajax间隔几秒就向服务器发送请求
  2、长轮询:发过请求后在那挂10秒,10秒后断开再发一次请求,10秒内有消息的话就接收并显示出来(主流网站都是用长轮询)
  3、websocket:有的浏览器不兼容

2、django路由层

1 基本路由 url(正则表达式, 函数地址, {默认值}, name=‘test‘)
2 有名分组/无名分组:url(r^articles/(?P<year>[0-9]{4})/$, views.year_archive),
3 路由的分发:include,url(‘app01/‘, include(urls)),app01/后不要加终止符$
4 反向解析:解决路由可能改变的情况,通过url里name动态解析出路由地址,视图层url=reverse(‘test‘),模板层{% url ‘test‘ %}
5、名称空间:url(r‘app01/‘,include(‘app01.urls‘,namespace=‘app01‘),name=‘index‘),视图层url=reverse(‘app01:index‘),模板层{% url ‘app01:test‘ %}
  遇到的问题:一开始不知道有名称空间,项目中用方向解析的时候,总是重定向不对,因为是多人协同开发的,后来发现是和同事命名一样了,后来上网查找有名称空间这个东西
6、django2.0的re_path和1.0的url一样,一开始用的1.几的版本,后来用的2.几

 

Django复习

原文:https://www.cnblogs.com/liweiwei0307/p/10464566.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!