为什么软件公司很少用python开发web

为什么软件公司很少用python开发web? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。9被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答0添加评论分享收藏感谢收起1添加评论分享收藏感谢收起Python超级程序员使用的开发工具 - 文章 - 伯乐在线
& Python超级程序员使用的开发工具
我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题:
当前你的主要开发任务是什么?
你在项目中使用的电脑是怎样的?
你使用什么IDE开发?
你将来的计划是什么?
有什么给Python程序员的建议?
就是这几个问题,我找了几个顶尖的程序员和编程书籍作家,问他们这几个相同的问题。下面是他们的回答,希望在他们的回答中你能找到一些可以让你的开发更便捷的工具。
Alex Martelli
Alex Martelli
人物简介:Alex Martelli是一位意大利计算机软件程序员,他是Python软件基金会的成员。从2005年初开始,他以“?ber技术首领”的身份在加利福尼亚景山谷歌总部工作。他拥有意大利Bologna大学电子工程学位(1980)。他是《Python in a Nutshell》一书的作者,他还和其他人合著了《Python Cookbook》,他还写了一些其它一些作品,大部分都是和Python相关的。因为他对Python社区杰出的贡献,他被授予的荣誉包括2002 Activators’ Choice Award和2006 Frank Willison award。
你可以通过他的了解更多关于他的信息。
问题一、当前你的主要开发任务是什么?
给我的老板(谷歌)开发商业软件,大部分是商业智能方面。
问题二、你在项目中使用的硬件机器是怎样的?
基本上都是谷歌的云服务器,通过谷歌APP引擎直接或间接的使用。有时候也使用一个Unix工作站或Macbook Air,但很少。
问题三、你使用什么IDE开发?
vim, gvim, 偶尔用一下iPython,但这好像不能算是IDE吧。
问题四、你将来的计划是什么?
应该还会待在谷歌——具体的研究方向那要看实际情况。
问题五、有什么给Python程序员的建议?
学习一下App Engine(通过webapp2 或flask, jinja2, &c以及其它类似django的轻量级环境):它们大部分都会对你的web项目有很好的用处——如果你想在这些环境之外的地方部署web应用,会是你最方便的选择。
Daniel Greenfeld
Daniel Greenfeld
人物简介: Daniel Greenfeld是《Two Scoops of django》一书的合著人。他有超过6年的在Django领域的研究经验。之前他在美国宇航局做开发,就是在那里他开始了他的Python之旅,一直到现在。他目前是的负责人。
你可以通过他的Twitter:
和他的获取他的更多信息。
问题一、当前你的主要开发任务是什么?
我现在的工作主要是客户端方面,基本上都是用Python。内容服务方面有时候会用到Django,但当前的主要工作基本上跟web无关。
问题二、你在项目中使用的硬件机器是怎样的?
硬件方面,我使用一个2011年的Macbook Air。因为我的开发方式,像Macbook Air这样的超级本用起来非常舒服。可苹果的产品一般都很贵,我就自己配了一个,我打算所有的任务都用它来做。如果哪天我能有一个新的笔记本,我想试试Linux的超级本或Window8的平板(以前我是靠虚拟机运行Windows8)。
问题三、你使用什么IDE开发?
我使用Sublime Text。我更喜欢文本编辑器,而不是IDE,因为我喜欢深入研究程序库和它们的文档,而不是通过IDE工具来提示我。
问题四、你将来的计划是什么?
我未来的计划就是编程,锻炼,做我最擅长的事情。也许会去一个新地方旅游。我喜欢去没有去过的地方,认识新朋友,品尝没吃过的食物。但大部分我的旅游都是基于客户的需求,今年我不知道什么时候会有这样的机会。
问题五、有什么给Python程序员的建议?
我给Python程序员的建议是挑战极限。寻找新的代码库,研究它们,使用它们。它们有些会不是很好,不好的东西也会教会你一些东西(不该做的事情)。
Miguel Grinberg
Miguel Grinberg
人物简介: Miguel是一个程序员,摄影师和电影制作人。生活在美国俄勒冈州。他目前正在写一本关于使用Python和Flask做web开发的书,将会由 O’Reilly Media出版。这本书的官方网站是。
你可以通过他的Twitter:
和他的获取更多信息。
问题一、当前你的主要开发任务是什么?
也许你会吃惊,工作中我并不做web开发。我在为做视频软件。C++是我在工作中使用的主要语言,但我们却使用了一个古老的用Python写的自动化单元测试框架,用起来很有趣。
空闲时间里我目前的第一大任务就是给O’Reilly出版社写一本关于Flask为框架的书,基本上快写成了。
问题二、你在项目中使用的硬件机器是怎样的?
我的机器是一个双系统的台式机,装的是Ubuntu和Windows8.1。我还有一个Mac OS X笔记本。
我在跨平台方面有些变态。除了给Arduino这样的嵌入式系统写代码外,所有其它我写的代码(不管什么语言),都需要在三种平台上运行。为了达到这个目的,我会不断的在Linux,Windows和OS X机器间切换。
问题三、你使用什么IDE开发?
我有一些最爱。PyCharm非常棒,在大型项目时我越来越依赖它,主要是因为它的交互式的调试工具。
在Windows平台上我会使用Visual Studio的一个Python插件,免费的,非常出色,我估计大部分人没听说过它。
我还经常使用SublimeText,通常是在笔记本上使用它。
Notepad++是我在Window台式机上最顺手的工具。在我所有的电脑上都装有一个非常老的Vim,即使在Windows上也使用Cygwin运行它。
问题四、你将来的计划是什么?
我在四月份的PyCon大会上会有一个关于Flask的演讲,我下一步开始着手准备材料,因为书已经快写好了。
我最近没怎么写博客,我很想写一点。我想能多腾出一些时间写博客。我已经拟了一份话题目录,准备按着这个清单写。如果需要的话,我可以把里面的一个关于Flask上的web sockets的文章提到最前面。
问题五、有什么给Python程序员的建议?
我对所有程序员——不光是Python爱好者——的建议是,多去实践,然后把它们分享给世界。分享很重要,从别人那获得反馈是让你提高的好方法。
而对于Python程序员我想说的是,如果我们只需要用嘴去讨论Python2和Python3的差别、而不需要花时间将众多的软件移植到Python3,那该多好。玩笑。
说的太好了!
揭开其他程序员的面纱,窥视他们如何施展魔法工作,这很有用。你可以看到,他们使用的工具、技术,我们都可以采用,很多都是免费的。我很感谢他们能分享这些信息。Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授权。 Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
Flask 的作者是 Armin Ronacher(他也是 Werkzeug 及 Jinja2 的作者。)。本来只是作者的一个愚人节玩笑,不过后来大受欢迎,进而成为一个正式的项目。
Flask 很有趣
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
from flask import Flaskapp = Flask(__name__)&@app.route("/")def hello():&&&&return "Hello World!"&if __name__ == "__main__":&&&&app.run()
$ pip install Flask
$ python hello.py
* Running on http://localhost:5000/
$ pip install Flask$ python hello.py * Running on http://localhost:5000/
内置开发用服务器和debugger
集成单元测试(unit testing)
RESTful request dispatching
使用Jinja2模板引擎
支持secure cookies(client side sessions)
100% WSGI 1.0兼容
Unicode based
详细的文件、教学
Google App Engine兼容
可用Extensions增加其他功能
资源整理者简介:
可能感兴趣的文章
按分类快速查找
关于资源导航
伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1440 项工具资源。
关于资源导航
伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2018 伯乐在线Pythonweb开发,我是这样理解的你觉得呢?Pythonweb开发,我是这样理解的你觉得呢?科技圈内百家号进群一起学习Python,欢迎各位大牛指教,小白求学。邀请码(耀文)如果想用 Python编写网站,有许多Python Web框架供选择(还不少呢)。一个Web框架至少要具备处理客户端请求和服务端响应的能力。框架可能具备下面这些特性中的一种或多种。路由解析URL并找到对应的服务端文件或者Python服务器代码。模板把服务端数据合并成HTML页面。认证和授权处理用户名、密码和权限。Session处理用户在多次请求之间需要存储的数据。先简单提下两个框架(bottle 和 flask),之后会介绍其他框架,用它们编写带数据库的网站非常方便。无论想编写什么网站都能找到合适的框架。Bottle只包含一个简单的Python文件,所以非常易于使用并且易于部署。Bottle并不是 Python 标准库的一部分,需要使用命令安装。Bottle是非常优秀的入门框架,但如果需要更多功能,就试试Flask吧。Flask最初只是2010年的一个愚人节玩笑,但是由于大家反响非常热烈,作者Armin Ronacher把它变成了一个真正的框架。有趣的是,Flask这个名字也是一个文字游戏 。flask和bottle都有瓶子的意思。Flask和Bottle一样易用,同时还支持很多专业Web开发需要的扩展功能,比如 Facebook 认证和数据库集成。很多人都喜欢Flask,因为它既好用又强大。Flask包中自带了 werkzeug WSGI 库和 jinja2 模板库,可从终端安装。非Python的Web服务器标准库的 http.server 或Bottle和Flask自带的调试用服务器都很简单。在生产环境中,我们需要用更快的Web服务器运行Python。下面是常用的选择:apache 加上 mod_wsgi 模块nginx 加上 uWSGI 应用服务器两者都很不错。apache 可能是最流行的,nginx 更稳定并且占用内存更少。1. ApacheApache(http://httpd.apache.org/)Web 服务器中最好用的 WSGI 模块是mod_wsgi(https://code.google.com/p/modwsgi/)。这个模块可以在Apache进程中运行Python代码,也可以在独立进程中运行Python代码并和Apache进行通信。如果你的系统是Linux或者OS X,那你已经有 apache 了。如果是 Windows,你需要安装apache(http://httpd.apache.org/docs/current/platform/windows.html)。2. Nginx Web服务器Nginx(http://nginx.org/)Web服务器没有内嵌的Python模块。它通过一个独立的WSGI服务器(比如 uWSGI)来和Python程序通信。把它们结合在一起可以实现高性能并且可配置的Python Web开发平台。可从官网(http://wiki.nginx.org/Install)安装 nginx。还需要安装 uWSGI(http://uwsgidocs.readthedocs.org/en/latest/Install.html)。uWSGI 是一个大系统,有许多需要调节的内容。可以在 http://flask.pocoo.org/docs/0.10/deploying/uwsgi/ 看到如何结合Flask、nginx和uWSGI。其他框架网站和数据库就像花生酱和果冻,它们经常一起出现。小型框架,比如 bottle 和 flask,不能直接支持数据库,得通过一些插件实现。如果需要开发基于数据库的网站,且数据库的结构不会经常变化,那最好试试大型Python Web框架,主流的框架有以下这些。django(https://www.djangoproject.com/)是最流行的,尤其受大型网站青睐。学习 django 的理由很多,其中最重要的就是Python的招聘要求中经常需要 django 的开发经验。它有ORM功能,可以在网页中自动应用典型的数据库CRUD功能(创建、替换、更新和删除)。也可以不用 django 自带的 ORM,选择SQLAlchemy 或者直接使用 SQL 查询语句。web2py(http://www.web2py.com/)和 django 功能类似,只是风格不同。pyramid(http://www.pylonsproject.org/)诞生于最早的 pylons 项目,和 django 很像。turbogears(http://turbogears.org/)这个框架支持 ORM、多种数据库以及多种模板语言。wheezy.web(http://pythonhosted.org/wheezy.web/)这是一个比较新的框架,为性能而生。在最近的测试中,它比其他框架都快(http://mindref.blogspot.com/2012/10/python-web-routing-benchmark.html)。https://wiki.python.org/moin/WebFrameworks这个在线表格能帮你比较选择使用哪个框架。如果你的网站使用的是关系数据库,就可以不使用大型框架,直接用 bottle、flask 这类框架结合关系数据库模块就行。也可以使用 SQLAlchemy 来屏蔽数据库的差异,直接写通用 SQL 代码。相比特定的 ORM 语法,大多数程序员更熟悉 SQL。当然,你完全可以不使用关系数据库。如果数据结构差异很大——不同行的同一列差别很大——那或许应该试试无模式数据库。我之前开发的一个网站一开始使用 NoSQL 数据库来存储数据,后来切换到一个关系数据库,然后又切换到另一个关系数据库,接着又切换到一个 NoSQL 数据库,最后又切换回了一个关系数据库。其他Python Web服务器下面是一些类似 apache 和 nginx 的基于 Python 的 WSGI 服务器,使用多进程或线程来处理并发请求:uwsgi(http://projects.unbit.it/uwsgi/)cherrypy(http://www.cherrypy.org/)pylons(http://www.pylonsproject.org/)下面是一些基于事件的服务器,只使用单线程但不会阻塞:tornado(http://www.tornadoweb.org)gevent(http://gevent.org/)gunicorn(http://gunicorn.org/)本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。科技圈内百家号最近更新:简介:独立自媒体数码评测者,科技自由撰稿人,作者最新文章相关文章Web开发 - 廖雪峰的官方网站
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。
随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,简称BS架构。
在BS架构下,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。
当然,Web页面也具有极强的交互性。由于Web页面是用HTML编写的,而HTML具备超强的表现力,并且,服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此,BS架构迅速流行起来。
今天,除了重量级的软件如Office,Photoshop等,大部分软件都以Web形式提供。比如,新浪提供的新闻、博客、微博等服务,均是Web应用。
Web应用开发可以说是目前软件开发中最重要的部分。Web开发也经历了好几个阶段:
静态Web页面:由文本编辑器直接编辑并生成静态的HTML页面,如果要修改Web页面的内容,就需要再次编辑HTML源文件,早期的互联网Web页面就是静态的;
CGI:由于静态Web页面无法与用户交互,比如用户填写了一个注册表单,静态Web页面就无法处理。要处理用户发送的动态数据,出现了Common Gateway Interface,简称CGI,用C/C++编写。
ASP/JSP/PHP:由于Web应用特点是修改频繁,用C/C++这样的低级语言非常不适合Web开发,而脚本语言由于开发效率高,与HTML结合紧密,因此,迅速取代了CGI模式。ASP是微软推出的用VBScript脚本编程的Web开发技术,而JSP用Java来编写脚本,PHP本身则是开源的脚本语言。
MVC:为了解决直接用脚本语言嵌入HTML导致的可维护性差的问题,Web应用也引入了Model-View-Controller的模式,来简化Web开发。ASP发展为ASP.Net,JSP和PHP也有一大堆MVC框架。
目前,Web开发技术仍在快速发展中,异步开发、新的MVVM前端技术层出不穷。
Python的诞生历史比Web还要早,由于Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web开发。
Python有上百种Web开发框架,有很多成熟的模板技术,选择Python开发Web应用,不但开发效率高,而且运行速度快。
本章我们会详细讨论Python Web开发技术。
Make a comment
Sign in to make a comment
You can sign in directly without register:
You need authorize to allow connect to your social passport for the first time.
WARNING: You are using an old browser that does not support HTML5.
Please choose a modern browser ( /
/ ) to get a good experience.}

我要回帖

更多关于 python web开发学习 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信