回复内容:
Django的局限性也无非封装太多不够通用,灵活性不够,中间件不遵循WSGI协议自成一套比较封闭,ORM/Template性能不佳。对于初学者而言,不用去考虑其局限性,Django封装的很好,初学者可以很快的做出一个应用。当你真的感到它的局限性已经影响到你时,相信那时你已经有能力跳出它的局限了。
所以不用考虑太多,畏首畏尾的,先做出东西再说,初学者Quick and Dirty没什么羞耻的。 已重写本回答……
Django 最大的问题是它已经为你预想了一套需求,并准备了针对这些需求的功能。在使用的时候,你要做的不是分析需求然后在 Django 的辅助下开发,而是按照手册的指导开启 Django 的这些功能。也就是说,你已经拥有了一把成型的锤子,只能用来钉它能钉的钉子。
如果你的需求不能被 Django 的设计覆盖了,那么你能做的是修改需求,而不是修改应用。因为 Django 已经被重度设计过,再二次修改设计成本很高。
一句话总结:Django 不是框架是应用 对静态资源的管理比 Rails Asset pipeline 差距比较大。不只是官方 staticfiles,包括第三方的 asset manager 插件尝试下来,也都没有 Sprockets 好用,所以最终还是建了一个空的 Rails project 专门处理 Assets,然后让 Django 通过 manifest 文件去调用这些资源。
对 NoSQL 数据库没有官方支持。虽然其他框架好像也没有官方 NoSQL 支持,但因为 Django ORM 和其他组件是深度耦合的,所以如果用一个 NoSQL ORM 替换掉 Django ORM 的话,其他组件等于不能用了。现在有 Django NonRel 的分支可以支持 MongoDB 和其他一些 NoSQL 数据库,虽然很好用,但因为不是官方分支,为了和上游版本兼容,需要付出的很多额外的代价。 django的局限(相对web.py)而言,可能是封装的太多了。因为你可以十分钟内用django建起一个博客(自己百度),但是,同时也意味着它为你在幕后做了很多工作而且可能并不是最优化的。而,Python的思想,我认为, 是显示声明,一切都应该有明确的说明,而不是靠默认操作。因此,django想要做好的话,你可能得深入的了解它,完善它。
如果你已经对它的代码有了深入了解,也许,可以让它变得更好 只要是适合自己的,就是最好的框架。我从django 0.96的时候开始使用一直到现在,可以说一直看着django成长起来。
django被人诟病最多的地方无非就是ORM太重,模板性能太差等等,但是我想说的是这些常被人说三道四的地方,其实django都给出了替代的方案。
ORM:如果你嫌写Model太麻烦,只想执行raw sql,那你可以参考 https://docs.djangoproject.com/en/1.4/topics/db/sql/ ,即使只用这部分,你也可以得到很多好处,不用再关心数据库使用的是MySQL还是PostgreSQL,方便的建立和自动关闭数据库链接。如果你觉得Django的ORM太差,完全可以在这基础之上构建属于自己的一个django的ORM,但是请自己好好考虑sql注入的风险吧。
模板性能:模板只在你返回web请求的时候才会用到,如果你喜欢,完全可以使用其他的模板系统,比如jinja。
如果是想写一个hello world类型的项目,其他轻量级的框架看起来几行代码就实现了。而django需要你先运行 startproject,startapp之类的一堆命令,看上去好像很麻烦。但是随着项目的越来越大,你需要集成的东西越来越多,你会发现django可以为你节省更多的时间。想要一个简单又有一定定制性的后台数据管理?django的admin实在太方便了。想要一个用户注册系统?自带的和网上各种app也是一大堆。想自动处理时区?想有多语言网站界面?等等这些django已经都为你考虑到了。django的django\utils目录也是一个不错的宝库,很多实用的小函数和类经常可以在这里被发现。
如果说非要有什么局限性的话,django和js的结合性确实比rails差很多,自己部署的话也比较麻烦(但是现在已经出现像dotcloud这样的快速部署服务)。 泻药啊,这不是我擅长的,我帮你再邀请几个人吧。
硬要说局限,恐怕最大的局限就是支持 python 的主机相对较少吧。
不过鉴于你初期要用的也就只是一个主机而已,总是找得到的,所以这也不算什么大问题。——如果你到了用VPS或者用物理主机的地步,那这也就更不是问题了,反正想装什么能装什么。 有人对django的局限做过论述,我在此引用一下,可以看下面两篇博文: http://www.cnblogs.com/zhengyun_ustc/archive/2006/11/19/564917.html
http://cookoo.iteye.com/blog/33182 如果每次升级带来的不向下兼容也算的话,那这个是我个人最不满意的局限性了。性能神码的,还是要根据应用来决定。 這兩篇文章, 年代實在有點久遠, 當中提到的 Django 程式碼時常修改, 在這一兩年剛好是反過來的, RoR 常有不向下相容的更新, 身邊許多朋友都長踩到地雷, 而 Django 則是很穩定。
我倒是覺得沒有什麼侷限。 只能用来钉它能钉的钉子。
如果你的需求不能被 Django 的设计覆盖了,那么你能做的是修改需求,而不是修改应用。因为 Django 已经被重度设计过,再二次修改设计成本很高。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器