• 编辑器

最常见: vim / SublimeText2 / PyCharm

Vim有兴趣可以看看 k-vim 适合Python/Golang开发

  • 本地环境

    pip/easy_install 包管理

virtualenv + virtualenvwrapper 库/版本管理, 环境隔离

ipython/ipdb

  • Web 框架

    Python 的Web 框架非常多……

个人偏好[有分先后]

flask 轻量! 可以灵活组合各类组件进行开发(第三方组件很丰富), 简单高效, 便于快速开发和维护.

tornado 异步, 高性能, 最新版本4.0

django 有些重, 配置和约定众多, 可以快速开发一些”管理”性质的后台, 其版本更新非常快

其他:

bottle 类flask, 一个文件, 足够小

SQLAlchemy is the Python SQL toolkit and Object
Relational Mapper that gives application developers the full power and
flexibility of SQL.

似乎这个就足够了, 无出其右

  • 模板

只提第三方(很多框架自带了, 例如Django/Tornado), 话说天下模板都大同小异

Jinja2, 最喜欢的一个, 之前写了篇 PYTHON模板-JINJA

Mako, 介绍PYTHON模板-MAKO

还有挺多的, 后续了解后补充

  • 代码管理及Wiki

使用git, 搭建gitlab

gilt针对项目级别, 可以用markdown写一些文档, 可以简单的code review, 可以进行讨论等等.

Wiki的选择:

gollum 很赞

trac老牌, 但是个人不大喜欢其语法编辑方式.

  • 代码发布

fabric + rsync

rsync 用于生产代码目录的同步, 足够简单强大

fabric 用于自动化部署, 将流程固化到脚本中重复使用, 提高效率降低风险, PYTHON FABRIC实现远程操作和部署

Fabric is a Python (2.5-2.7) library and command-line
tool for streamlining the use of SSH for application deployment or
systems administration tasks.

  • 项目部署

nginx 服务器, 主要用于负载均衡, 反代等

gunicorn a Python WSGI HTTP Server for UNIX, 用来运行Flask项目

Supervisor A Process Control System, 配置管理各种程序, 进程监控, 自动重启等

  • 监控

nagios 服务器各类参数监控, 负载,内存,IO, 网络等, 也可以配置对进程进行监控报警

sentry 实时收集事件日志, 可以在管理后台查看到当前程序异常及报错具体信息, 很强大的平台, 支持多种语言的程序

statsd + graphic

statsd 实时服务数据收集(e.g. counters and timers) 收集后数据提供给graphic进行展示

graphic 企业级开源监控工具(数据绘图工具),用于采集服务器实时信息并进行统计, Graphite 自己本身并不收集具体的数据,这些数据收集的具体工作通常由第三方工具或插件完成. 其控制台前端项目 tessera

  • NOSQL

redis 缓存/持久化/特殊需求(计数-排行榜-时间线等)

memcached 集群, 多用于有时限性质的缓存

mongodb 在技术选型玩了下, 没有正式在生产用过

  • 数据库

mysql 不解释, 感觉是不是所有Python的底层db都是mysql……

postgresql 开发日志统计系统使用过, 学院派, 各种牛叉的功能, 对json的支持令人印象深刻.

  • 抓取

beautifulsoup 配合urllib2或者requests库进项简单的抓取分析工作

scrapy 很牛的抓取框架, 适合规模较大,需求复杂的的抓取任务

完成搜索功能, 虽然Python也有一些实现, 但是感觉还是使用成熟的方案会好些, 文档/资源丰富, 便于开发和维护. Solr, 足够简单及强大.

  • 好用的第三方

requests HTTP for humans, 非常好用, 强烈推荐

jieba 中文分词

  • 异步和队列

gearman 支持分布式的任务分发框架, 并行/不同语言之间的通信. 之前使用主要用来跨机器任务分发.

celery 分布式任务队列

zeromq 之前使用的消息系统是基于这个的, 没有研究过

  • 日志

logstash 日志收集和分析, 支持不同来源不同格式, 进行统一收集和分析处理

Elasticsearch 数据

Kibana A log analyzing web interface for logstash and elasticsearch

三者组合

  • 项目管理

tower

Python后端相关技术/工具栈的更多相关文章

  1. YACEP相关技术工具服务技巧(上)

    这篇随笔的核心是介绍一下YACEP所用到的一些技术,工具,服务和技巧,鉴于篇幅原因,不可能面面俱到,只能点到为止,目录如下: 目录: 1. YACEP简介(上)             2. 技术篇( ...

  2. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”

    上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...

  3. 《Python测试开发技术栈—巴哥职场进化记》—前言

    写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...

  4. 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义

    上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...

  5. 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照

    上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...

  6. Python语言的技术领域

    第一部分:各个领域应用的语言 大家看这个内容,其实你很明显发现,其实各个语言都有他的用处.我们可以说Python是应用最广的.但是暂时还是不能说它是全能的,因为他也有它的短板,但是对于一般的小公司和小 ...

  7. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  8. 一、python基础相关知识体系

    python基础 a. Python(解释型语言.弱类型语言)和其他语言的区别? 一.编译型语言:一次性,将全部的程序编译成二进制文件,然后在运行.(c,c++ ,go) 运行速度快.开发效率低 二. ...

  9. python后端面试第七部分:项目部分--长期维护

    ##################    项目部分       ####################### 1,你怎么测试自己的代码的?自测 2,开发使用windows还是Linux,虚拟环境的 ...

随机推荐

  1. spring处理线程并发

    http://www.open-open.com/bbs/view/1320130410702

  2. CSS 基础 例子 定位及z-index

    position 属性指定了元素的定位类型. position 属性的四个值: static    不设置默认为该值,即没有定位,元素出现在正常的流中.不能使用top,bottom,left,righ ...

  3. 2.select查询用法

    1.定义查询接口 UserMapper.java package tk.mybatis.simple.mapper; import tk.mybatis.simple.model.SysRole; i ...

  4. 雪花算法(snowflake)delphi版

    雪花算法简单描述: + 最高位是符号位,始终为0,不可用. + 41位的时间序列,精确到毫秒级,41位的长度可以使用69年.时间位还有一个很重要的作用是可以根据时间进行排序. + 10位的机器标识,1 ...

  5. cxGrid用法-最新

    cxGrid用法-最新 在做AdoHelper实用程序的时候,我用了DevExpress的cxGrid控件.在此之前用的是dbgrid,考虑到不能把所有的数据都拉到本地,我用了动态生成的select ...

  6. 怎么找到与你Eclipse匹配的spring tool suite插件

    在Eclipse中安装插件是很简单的,但是某些插件需要与你的Eclipse的版本对应才能用,比如spring的插件. 首先,查看你的Eclipse的版本. 从eclipse的Help菜单的About ...

  7. Ubuntu18.04 - 实现鼠标右键新建文件功能!

    Ubuntu18.04安装完毕后,你会发现,如果在桌面或其它地方,像在Windows下鼠标右键,新建一个文件,那么真的不行,没有那个选项!这个功能其实非常有用,怎么实现呢?新建一个你要右键新建类型文件 ...

  8. spring IOC理解

    用spring做了几个项目后发现,对spring的IOC理解还是不够清晰,今天就来总结下自己的理解(个人的一些见解) 以前用jsp+servlet做网站时,只是分了显示层(jsp),控制层(servl ...

  9. D3.js的基础部分之数组的处理 数组的排序和求值(v3版本)

    操作数组   D3提供了将数组洗牌.合并等操作,使用起来是很方便的.   d3.shuffle(array,[,lo[,ji]]) : //随机排列数组. d3.merge(arrays) :   / ...

  10. POJ 2405

    #include <iostream> #include <cmath> #include <iomanip> #define pi 3.1415926536 us ...