Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

Django内置的ORM跟框架内的其他模块耦合程度高。

应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。

Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。

Django适用的是中小型的网站,或者是作为大型网站快速实现产品雏形的工具。

Django

模板的设计哲学是彻底的将代码、样式分离; Django从根本上杜绝在模板中进行编码、处理数据的可能。

runserver 方法是调试 Django 时经常用到的运行方式,它使用 Django 自带的

WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。

uWSGI是一个 Web 服务器,它实现了WSGI 协议、uwsgi、http 等协议。注意 uwsgi 是一种通信协议,而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的Web 服务器。uWSGI 具有超快的性能、低内存占用和多app 管理等优点,并且搭配着 Nginx

就是一个生产环境了,能够将用户访问请求与应用 app 隔离开,实现真正的部署。相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。

简述Django对http请求的执行流程

在接受一个Http请求之前的准备

启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器。

服务器根据WSGI协议指定相应的Handler来处理Http请求,并且初始化该Handler,在Django框架中由框架自身负责实现这一个Handler。

此时服务器已处于监听状态,可以接受外界的Http请求

当一个http请求到达服务器的时候

服务器根据WSGI协议从Http请求中提取出必要的参数组成一个字典(environ)并传入Handler中进行处理。

在Handler中对已经符合WSGI协议标准规定的http请求进行分析,比如加载Django提供的中间件,路由分配,调用路由匹配的视图等。

返回一个可以被浏览器解析的符合Http协议的HttpResponse。

简述Django下的(内建)缓存机制

Django根据设置的缓存方式,浏览器第一次请求时,cache会缓存单个变量或整个网页等内容到硬盘或者内存中,同时设置response头部,当浏览器再次发起请求时,附带f-Modified-Since请求时间到Django,Django 发现f-Modified-Since会先去参数之后,会与缓存中的过期时间相比较,如果缓存时间比较新,则会重新请求数据,并缓存起来然后返回response给客户端,如果缓存没有过期,则直接从缓存中提取数据,返回给response给客户端。

转载于:https://www.cnblogs.com/Dreamxin/p/8335872.html

总结---Django部分相关推荐

  1. Django学习之路(一)--初识django

    1.先创建虚拟环境 为什么要创建虚拟环境呢? 你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行 ...

  2. django自带的分页功能

    django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...

  3. django正反向查询

    django正反向查询 当我们的表存在外键想要从一找多的时候该怎么查找,当我们从多找一的时候又应该怎么查找. 一找多 首先我们要创建一个项目,在项目的model.py中创建两个模型. from dja ...

  4. Django 布署6.5

    布署 从uwsgi.nginx.静态文件三个方面处理 服务器介绍 服务器:私有服务器.公有服务器 私有服务器:公司自己购买.自己维护,只布署自己的应用,可供公司内部或外网访问 公有服务器:集成好运营环 ...

  5. Django 全文检索6.3

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:django的一个包,可以方便地对model里面的内容进行索引.搜索,设计为支持wh ...

  6. Django 缓存6.2

    缓存 对于中等流量的网站来说,尽可能地减少开销是必要的.缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源 Django自带了一个健壮的缓存系统来保存动态页面,避免对 ...

  7. Django 第三方引用富文本编辑器6.1

    借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员 此处以tinymce为例,其它富文本编辑器的使用可以自行学习 使用编辑器 ...

  8. Django 分页和使用Ajax5.3

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  9. Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为<input type="file" name="& ...

  10. Django高级管理静态文件和中间件5.1

    管理静态文件 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 STATIC_URL = '/static/' STATICFILES_DIRS = [os ...

最新文章

  1. OpenCV中导向滤波介绍与应用
  2. wxpython 内嵌字体_【wxPython】wx.font类字体
  3. LeetCode-334. Increasing Triplet Subsequence
  4. 电子书百度云 笨办法学python3_百度云资料藤井麻里 从零快乐学日语语法
  5. python os 文件操作 os.rename(src, dst) 方法 os.renames()
  6. 【数据竞赛】图像赛排行榜拉开100名差距的技巧
  7. matlab 计算大圆距离,已知两点经纬度计算两点之间的大圆距离
  8. html的属性与css的属性,HTML的属性和css基础
  9. mysql设置字段为空字符串_mysql数据类型字段插入空字符串自动填充为0报错
  10. 预训练模型的前世今生(有福利!)
  11. linux tcp cork,Socket选项系列之TCP_CORK(转)
  12. Django model select的各种用法详解
  13. xu2w显示屏软件下载_led显示屏控制软件下载
  14. iOS 模拟器调试web/h5代码
  15. 10-79 spj-查询供应工程 j1 零件 p1 的供应商
  16. 液晶面板里面有些什么配件_液晶模组LCM和液晶面板有什么区别
  17. 数据结构—线性表(第三章)—基本知识点总结
  18. AngularJS vs. jQuery,看看谁更胜一筹
  19. android 酷狗demo_酷狗音乐Android客户端详细使用评测
  20. Mac安装单机版K8S

热门文章

  1. 安装红帽linux显示半屏,在linux下模拟win+arrow来左右半屏当前窗口
  2. mac中安装使用podman,替换docker
  3. java镜像_012 制作Java基础镜像
  4. 在spring管理的类的要注意问题
  5. @Configuration使用
  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-4.后端项目分层分包及资源文件处理...
  7. 阶段3 2.Spring_10.Spring中事务控制_5 spring事务控制的代码准备
  8. springmvc中的session:不比对数据库自动登陆
  9. iphone移动端踩坑
  10. ubunt 文件permission denied问题的解决