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

项目启动

在开始一个新的软件项目之前,您需要评估哪种语言和框架最适合您所期望的结果。什么对你最重要?安全性、快速开发、可伸缩性、多功能性、支持还是其它?

经过多年使用不同技术(包括移动和web开发)的经验,我相信 django 提供了其他web框架无法提供的完整特性。

这是一个很大的要求。

Django 为许多最常用的Web站点提供支持,比如 InstagramPinterest,甚至 Facebook 也使用 Django 作为后台工具。Django 来自出版行业,所以《华盛顿邮报》和《史密森尼杂志》使用 Django 也就不足为奇了。-- Amit Ashwini,营销副总裁@ Zibtek

何时使用 django

  • 需要开发一个web应用程序或API后端。
  • 需要快速迁移、快速开发,并在前进的同时进行更改。
  • 需要集成相关安全防范,例如 csrfsql注入xss ...
  • 将来可能需要高阶技术,例如 机器学习
  • 需要一个可靠的框架,并且有着良性的发展
  • 需要应用程序和API后台在同一个代码库中,以符合单一来源真理 (又名 DRY
  • 需要 orm 支持
  • 需要遇到一些问题,如何找到解决方案,例如有着良好的文档及社区支持

除了以上几点,你自己(或你的团队)的技能也应该在考虑在内。

如果是一个了解 web如何工作 的 web 开发人员,那么使用 django 是相对无缝的,你可能只需要了解下 django 的结构(当然也有一些其它的东西)即可。

何时不使用 django

  • 应用程序规模非常庞大,不能把所有东西放在一个代码库中。
    可能想把你的应用拆分成微服务。每一层可以由专门的团队和流程更好地处理。最好每个用例使用不同的技术。django 可能再某些特定的用例中会有所帮助。但使用 django 开发所有东西可能并不明智。
  • 构建一个非常基础的应用程序,它不需要数据库、文件操作或者比较复杂的操作。
    微框架更适合这些用例。Flask 是用 python 编写的最流行的微框架之一。类似的微框架在其他技术中也可用。
  • 希望一切从零开始,知道自己在做什么
  • 自己或者团队根本不熟悉 django,没有足够的时间和资源来获取所需要的技能
    这种情况下,最好的解决方案是使用最熟悉的方法。如果采用一项新技术或新框架,把事情搞砸的可能性会成倍增加。

如果以上内容不适用于您的项目,那么 django 可能适合你。

何时使用 django 以及何时不用?的更多相关文章

  1. Django开启https(不用nginx)

    首先安装需要用到的包 pip install django-extensions pip install django-werkzeug-debugger-runserver pip install ...

  2. Django admin定制化,User字段扩展[原创]

    前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...

  3. web框架django初探

    Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...

  4. Python之路【第十六篇】Django基础

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  5. 1.django笔记之django基础

    一.django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...

  6. 文成小盆友python-num17 - django基础

    一.首先了解web应用的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 下面利用socket实现一个简单的web框架: #!/usr/b ...

  7. 在sae配置django项目

    1:使用sae开发必须有sae帐号,自己注册吧: 2:在sae上新建立一个python项目: 3:建立完成之后新建一个版本,即版本1: 4:获取svn的地址在eclipse中check下来: 5:注意 ...

  8. 全面解读Python Web开发框架Django

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  9. 直接用nose进行django项目测试并输出html报告

    先说需求:1.测试django项目:2.打印测试报告(html格式)有以下几种测试方法:1.django自带的测试模块.在app目录下的tests.py文件中写测试类,类似这样: class MyTe ...

随机推荐

  1. 示例:WPF中Slider控件封装的缓冲播放进度条控件

    原文:示例:WPF中Slider控件封装的缓冲播放进度条控件 一.目的:模仿播放器播放进度条,支持缓冲任务功能 二.进度: 实现类似播放器中带缓存的播放样式(播放区域.缓冲区域.全部区域等样式) 实现 ...

  2. C# 实用代码段

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. 为什么要用 redis 而不用 map 做缓存?

    缓存分为本地缓存和分布式缓存.以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着 jvm 的销毁而结束,并且在多实例的情况下,每个实例 ...

  4. Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点)

    Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点) 一丶Django的静态文件配置 #we ...

  5. Vue学习之Webpack小结(十二)

    一.nrm: nrm是专门用来管理和快速切换私人配置的registry; nrm提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 二.镜像: 原来   包    刚一开 ...

  6. 86.使用webpack爬过的坑

    Webpack 4 和单页应用入门   https://github.com/wallstreetcn/webpack-and-spa-guide

  7. JavaScript 之 事件(详解)

    一.注册事件的三种方式 1.直接事件方式 语法格式: 变量名.on事件名 = function() {} 注意:这种方式无法给同一对象的同一事件注册多个事件处理函数 2.addEventListene ...

  8. 半导体行业MES系统应用案例

    半导体行业的发展是受惠在集成电路上的,但是收到技术瓶颈的阻碍,所以工业时期对半导体行业就造成了严重的冲击. 为了推动半导体行业快速发展,扭转像IBM.东芝以及富士康等IDM大厂利用晶圆代工对半导体制造 ...

  9. Android图像滤镜框架GPUImage从配置到应用

    GPUImage简介 GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜.GPUImage for Android是它在Andr ...

  10. Java JDBC 操作二进制数据、日期时间

    二进制数据 mysql提供了四种类型来存储二进制数据: TinyBlob    最多可存储255字节 Blob   最多可存储65KB MediumBlob    最多可存储16MB LongBlob ...