何时使用 django 以及何时不用?
选择一种语言和框架,因为你在上一个项目中使用了它或者因为你更熟悉它,但是这不是正确的方法。

项目启动
在开始一个新的软件项目之前,您需要评估哪种语言和框架最适合您所期望的结果。什么对你最重要?安全性、快速开发、可伸缩性、多功能性、支持还是其它?
经过多年使用不同技术(包括移动和web开发)的经验,我相信 django 提供了其他web框架无法提供的完整特性。
这是一个很大的要求。
Django为许多最常用的Web站点提供支持,比如Django作为后台工具。Django来自出版行业,所以《华盛顿邮报》和《史密森尼杂志》使用Django也就不足为奇了。-- Amit Ashwini,营销副总裁@ Zibtek
何时使用 django
- 需要开发一个web应用程序或API后端。
- 需要快速迁移、快速开发,并在前进的同时进行更改。
- 需要集成相关安全防范,例如
csrf、sql注入、xss... - 将来可能需要高阶技术,例如 机器学习
- 需要一个可靠的框架,并且有着良性的发展
- 需要应用程序和API后台在同一个代码库中,以符合单一来源真理 (又名
DRY) - 需要
orm支持 - 需要遇到一些问题,如何找到解决方案,例如有着良好的文档及社区支持
除了以上几点,你自己(或你的团队)的技能也应该在考虑在内。
如果是一个了解 web如何工作 的 web 开发人员,那么使用 django 是相对无缝的,你可能只需要了解下 django 的结构(当然也有一些其它的东西)即可。
何时不使用 django
- 应用程序规模非常庞大,不能把所有东西放在一个代码库中。
可能想把你的应用拆分成微服务。每一层可以由专门的团队和流程更好地处理。最好每个用例使用不同的技术。django 可能再某些特定的用例中会有所帮助。但使用 django 开发所有东西可能并不明智。 - 构建一个非常基础的应用程序,它不需要数据库、文件操作或者比较复杂的操作。
微框架更适合这些用例。Flask是用python编写的最流行的微框架之一。类似的微框架在其他技术中也可用。 - 希望一切从零开始,知道自己在做什么
- 自己或者团队根本不熟悉 django,没有足够的时间和资源来获取所需要的技能
这种情况下,最好的解决方案是使用最熟悉的方法。如果采用一项新技术或新框架,把事情搞砸的可能性会成倍增加。
如果以上内容不适用于您的项目,那么 django 可能适合你。
何时使用 django 以及何时不用?的更多相关文章
- Django开启https(不用nginx)
首先安装需要用到的包 pip install django-extensions pip install django-werkzeug-debugger-runserver pip install ...
- Django admin定制化,User字段扩展[原创]
前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...
- web框架django初探
Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...
- Python之路【第十六篇】Django基础
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- 1.django笔记之django基础
一.django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 文成小盆友python-num17 - django基础
一.首先了解web应用的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 下面利用socket实现一个简单的web框架: #!/usr/b ...
- 在sae配置django项目
1:使用sae开发必须有sae帐号,自己注册吧: 2:在sae上新建立一个python项目: 3:建立完成之后新建一个版本,即版本1: 4:获取svn的地址在eclipse中check下来: 5:注意 ...
- 全面解读Python Web开发框架Django
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...
- 直接用nose进行django项目测试并输出html报告
先说需求:1.测试django项目:2.打印测试报告(html格式)有以下几种测试方法:1.django自带的测试模块.在app目录下的tests.py文件中写测试类,类似这样: class MyTe ...
随机推荐
- Kafka学习笔记之Kafka日志删出策略
0x00 概述 kafka将topic分成不同的partitions,每个partition的日志分成不同的segments,最后以segment为单位将陈旧的日志从文件系统删除. 假设kafka的在 ...
- EF Core 迁移整理
创建迁移 PowerShell Add-Migration InitialCreate 多数据源 Add-Migration InitialCreate -Context MyDbContext -O ...
- Ubuntu中的两套网络连接管理方式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/haifeng_gu/article/details/78286895 Linux里面有两套管理网络 ...
- Linux下通过md5sum生成MD5文件&校验MD5
生成md5值 随便找个文件执行:md5sum file_name 即可生成该文件对应md5值. 也可以一次生成多个文件的md5值:md5sum file_name1 file_name2 file_ ...
- iOS - 架构的认识过程,悬崖勒马。
16年的时候写过一篇代码讲解的,依旧是这三种架构,现在20年将近了,看到好的文章,是否增加新的认识. 16年链接 iOS - 架构模式 - 解密 MVC.MVP.MVVM.VIPER架构 新项目选择架 ...
- Jest单元测试进阶
Jest 命令行窗口中的指令 在学习Jest单元测试入门的时候,给Jest命令提供了一个参数 --watchAll, 让它监听测试文件或测试文件引入的文件的变化,从而时时进行测试.但这样做也带来一个问 ...
- Vue项目打包发布后CSS中的背景图片不显示
相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...
- 基于JPA的分页/排序实现
Page<ClassOrder> findByMember_MemberID(long id, Pageable pageable); Controller代码: public Model ...
- Android源码分析(四)-----Android源码编译及刷机步骤
一 : 获取源码: 每个公司服务器地址不同,以如下源码地址为例: http://10.1.14.6/android/Qualcomm/msm89xx/branches/msm89xx svn环境执行: ...
- oracle 排序后分页查询
demo: select * from ( select * from DEV_REG_CFG_CAMERA where 1 = 1 order by unid asc) where rownum & ...