Python后端相关技术/工具栈
- 编辑器
最常见: 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, 一个文件, 足够小
- ORM
SQLAlchemy
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
还有挺多的, 后续了解后补充
- 代码管理及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 很牛的抓取框架, 适合规模较大,需求复杂的的抓取任务
- 搜索
solr
完成搜索功能, 虽然Python也有一些实现, 但是感觉还是使用成熟的方案会好些, 文档/资源丰富, 便于开发和维护. Solr, 足够简单及强大.
- 好用的第三方
requests HTTP for humans, 非常好用, 强烈推荐
jieba 中文分词
- 异步和队列
gearman 支持分布式的任务分发框架, 并行/不同语言之间的通信. 之前使用主要用来跨机器任务分发.
celery 分布式任务队列
zeromq 之前使用的消息系统是基于这个的, 没有研究过
- 日志
logstash 日志收集和分析, 支持不同来源不同格式, 进行统一收集和分析处理
Kibana A log analyzing web interface for logstash and elasticsearch
三者组合
- 项目管理
Python后端相关技术/工具栈的更多相关文章
- YACEP相关技术工具服务技巧(上)
这篇随笔的核心是介绍一下YACEP所用到的一些技术,工具,服务和技巧,鉴于篇幅原因,不可能面面俱到,只能点到为止,目录如下: 目录: 1. YACEP简介(上) 2. 技术篇( ...
- 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”
上文<Python测试开发技术栈-巴哥职场进化记>-初来乍到,请多关照 我们介绍了巴哥入职后见到了自己的导师华哥,第一次参加团队站会,认识了团队中的开发小哥哥和产品小姐姐以及吃到了公司的加 ...
- 《Python测试开发技术栈—巴哥职场进化记》—前言
写在前面 今年从4月份开始写一本讲Python测试开发技术栈的书,主要有两个目的,第一是将自己掌握的一些内容分享给大家,第二是希望自己能系统的梳理和学习Python相关的技术栈.当时我本来打算以故事体 ...
- 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义
上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...
- 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照
上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...
- Python语言的技术领域
第一部分:各个领域应用的语言 大家看这个内容,其实你很明显发现,其实各个语言都有他的用处.我们可以说Python是应用最广的.但是暂时还是不能说它是全能的,因为他也有它的短板,但是对于一般的小公司和小 ...
- 为什么说Python 是大数据全栈式开发语言
欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...
- 一、python基础相关知识体系
python基础 a. Python(解释型语言.弱类型语言)和其他语言的区别? 一.编译型语言:一次性,将全部的程序编译成二进制文件,然后在运行.(c,c++ ,go) 运行速度快.开发效率低 二. ...
- python后端面试第七部分:项目部分--长期维护
################## 项目部分 ####################### 1,你怎么测试自己的代码的?自测 2,开发使用windows还是Linux,虚拟环境的 ...
随机推荐
- Linqpad工具
下载地址: http://www.linqpad.net/ 可以通过连接数据库,直接测试LINQ语句,并可以转化为Lamda .SQL语句. 非常好用的小工具,记录一下.
- Lib作为“静态库”与“动态库”中的区别
Lib作为“静态库”与“动态库”中的区别 0. 前言: 什么是静态连接库: 静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中.因此对应的链接方式称为静态链接. 为什么 ...
- spark 中划分stage的思路
窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,表现为 一个父RDD的分区对应于一个子RDD的分区 两个父RDD的分区对应于一个子RDD 的分区. 宽依赖指子RDD的每个分区都要依赖于父RD ...
- hdu 5089 使做对k-1题最大概率的选题方案
http://acm.hdu.edu.cn/showproblem.php?pid=5089 给出N道难度递增的题目,难度用可能做出的百分比表示,选出K道题目使得做出K-1道题目的概率最大. 选k题的 ...
- Python自动化开发 - 生成器、迭代器
本节内容 1.列表生成式 2.生成器 3.迭代器 一.列表生成式 需求:把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]里,每个元素都加1 # 复制版,重新绑定 a = [0, 1, ...
- TVS(瞬间电压抑制器)
1.原理 TVS二极管在线路板上与被保护线路并联,当瞬时电压超过电路正常工作电压后,TVS二极管便产生雪崩,提供给瞬时电流一个超低电阻通路,其结果是瞬时电流透过二极管被引开,避开被保护元件,并且在电压 ...
- Spring与多线程
前言背景 在做新项目,作为中间件的项目,主要做数据服务.这次想把项目做的简洁一些,之前用的什么ActiveMq等中间件产品,这次全部不用,能自己实现就自己实现.自己用BlockingQueue阻塞队列 ...
- Windows 7 系统中开启 ASP.NET State Service 服务的方法
控制面板 -> 程序和功能 -> “打开或者关闭 Windows 功能”对话框 -> Internet 信息服务 -> 万维网服务 -> 应用程序开发功能 -> A ...
- 【系统架构】亿级Web系统搭建(1):Web负载均衡
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要通过搭建不同的服务 ...
- 58VIP账号发贴器
因公司有招聘大量普工需求,需要大量简历资源,直接从58买一份简历动辄几块到几十块,如果做精准少则1块以上的点击.而且收到的简历不太精准,应公司需求写了一款自动发贴器.完全模拟人工发贴,经过一个月的测试 ...