首页>>后端>>Python->django占用内存多少

django占用内存多少

时间:2023-12-05 本站 点击:0

导读:很多朋友问到关于django占用内存多少的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

本文目录一览:

1、python高并发web框架有哪些2、django celery 上传处理大文件出错3、如何在阿里云上部署django网站4、Django服务器运行时如果内存耗尽了,会怎么样5、django什么意思6、Django本身提供了runserver,为什么不用来部署

python高并发web框架有哪些

python的web框架很多

django (大而全,模板,orm都自带)

flask (pocoo出品,比属精品,自带jinja2模板,可以替换)

web.py (这个我没用过,作者自杀,白瞎了一个高手)

bottle (只有一个文件的框架,需要自己构建整个开发体系)

uliweb (中国人开发的,也很不错)

Tornado (异步框架,适合长连接,比如在线聊天之类的)

Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django。Django为人所称道的地方主要有:

①完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Django book)。

②全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stack framework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,开发网 站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。

③强大的URL路由配置,Django让你可以设计出非常优雅的URL,在Django里你基本可以跟丑陋的GET参数说拜拜。

④自助管理后台,admin interface是Django里比较吸引眼球的一项contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。

django celery 上传处理大文件出错

小于2.5M时,会放在 InMemoryFileUploadFile(内存里面) 对象里面;

大于2.5M时,会放在 TemporaryFileUploadFile (磁盘文件)里面

而 celery 做pickle_dump时会去找file object的encoding

这个encoding目前发现只能存在 InMemoryFileUploadFile 对象里面

所以,我们只有将所有上传文件都放到 InMemoryFileUploadFile 里面,才能通过celery

可以通过在settings里面设置

来修改策略使所有50M以内的文件都存在 InMemoryFileUploadFile 里面

这个设置谨慎使用,防止内存溢出!!!

如何在阿里云上部署django网站

Django的部署建议放在Linux系统上。比较易于新手入门的Linux服务器发布版应该是Ubuntu,aliyun上目前最新版本应该是16.04,建议64位。

如果你是新网站,没有多少访问量,建议1核1内存或者2G内存,1-2M的宽带就足够了。最近双十一还有活动。

部署,安装Nginx:

apt install nginx

不知道你的Django项目是python2还是Python3,如果选用uwsgi部署方式,除了uwsig需要装一个uwsgi-plugin-python或者uwsgi-plugin-python3

剩下的看官方文档的uwsgi部署部分基本就ok了,因为全写实在太长了,还有的uwsgi配置文件。

Django服务器运行时如果内存耗尽了,会怎么样

通常用WSGI方式启动,ngix连接django方式。很少出现这样的情形。

如果内存耗尽,先要确定原因。如果你的虚拟机内存太少,就加内存。 如果内存超过1个GB,还有内存耗尽的问题,应该django里的view没有设计好。其中有内存泄露。

第一件事情当然是把这部分代码找出来改进就可以了。

最后一种办法,在不得已的情况下,定时重新启动django的wsgi server,这样就避免了内存耗尽,可以在晚上特定的时候来重新启动。这样影响最小。

django什么意思

[编辑本段]概述

Django(发音:/ˈdʒæŋgoː/) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守 BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

[编辑本段]设计哲学

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。

Django基于MVC的设计十分优美:

对象关系映射 (ORM,object-relational mapping)

以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。

URL 分派

使用正则表达式匹配URL,你可以任意设计的URL,没有框架的特定限定。象你喜欢的一样灵活。

模版系统

使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。

表单处理

你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。

Cache系统

可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。

会话(session),用户登录与权限检查

快速开发用户会话功能。

国际化

内置国际化系统,方便开发出多种语言的网站。

自动化的管理界面

不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于内容管理系统。

[编辑本段]部署

Django可以运行在Apache上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql, MySql, Sqlite3。

目前,Google App Engine也支持Django的某些部分。

[编辑本段]文档

Django1.0 建立了强大完整的文档文档体系 (),涵盖了Django的方方面面,并且适合各种水平的读者和开发者. 其中还包含若干个简单的示例,你可以跟随他们一步步体验Django的优美。

Django本身提供了runserver,为什么不用来部署

      Django本身自带了runserver,但是我们只是在测试的时候,会用到它,而在真正的生产部署一般都会使用uwsgi+nginx方式。

       因为我们的生产环境一般都会有很大的并发访问量,而django自带的runserver非常不稳定,最大连接数大约在几十个,过多的并发连接,导致服务崩溃,而且安全性上也不好。

       而nginx可以支持高并发连接,官方给出最大连接数在50000个左右,实际生产中,大约也在20000~40000个左右,内存消耗少,稳定性高,支持热部署(可以在不间断服务的情况下,进行版本升级)。

      相对比较而言,Django自带的runserver,只适合我们在测试的时候使用。

结语:以上就是首席CTO笔记为大家介绍的关于django占用内存多少的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/12442.html