何时使用 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 ...
随机推荐
- Excel转换成xml文件
namespace ExcelToXml { class Program { [STAThread] static void Main(string[] args) { Program program ...
- vue/react/angular开发的css架构思考
前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势 ...
- linux环境:FTP服务器搭建
转载及参考至:https://www.linuxprobe.com/chapter-11.html https://www.cnblogs.com/lxwphp/p/8916664.html 感谢原作 ...
- spark的存储系统--BlockManager源码分析
spark的存储系统--BlockManager源码分析 根据之前的一系列分析,我们对spark作业从创建到调度分发,到执行,最后结果回传driver的过程有了一个大概的了解.但是在分析源码的过程中也 ...
- jQuery简易Ajax(六)
一.jQuery中ajax的两种书写方式[一般采用第二种方式]1.$.ajax(url,[setting]); 2.$.ajax([setting]); setting参数说明:setting为一个对 ...
- JavaScript设计模式与开发实践随笔(三)
封装 1. 封装数据 a) 只能依赖变量的作用域来实现封装特性,es6中可以通过symbol创建私有属性 var myObject = (function(){ var __name = ' ...
- Android源码分析(三)-----系统框架设计思想
一 : 术在内而道在外 Android系统的精髓在源码之外,而不在源码之内,代码只是一种实现人类思想的工具,仅此而已...... 近来发现很多关于Android文章都是以源码的方向入手分析Androi ...
- Vue Nginx反向代理配置 解决生产环境跨域
Vue本地代理举例: module.exports = { publicPath: './', devServer: { proxy: { '/api': { target: 'https://mov ...
- 第一册:lesson 131.
原文: Don't be so sure. question:What's the problem about deciding on a holiday. Where are you going t ...
- springboot异常处理方式
一.异常处理思路 异常捕获的是unchecked型异常,因为checked异常在代码中年已经处理过,当然是在使用try-catch处理.这里首先使用ExceptionHandler捕获全局异常,这样如 ...