11.5-关于用Python建网站

来源:互联网 发布:php mysql 长连接 编辑:程序博客网 时间:2024/05/16 15:00
作者:陈侃
链接:https://www.zhihu.com/question/20414620/answer/15069379
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

python的web应用框架可谓非常极其之多,远非其他语言所能比
某本书说:为什么python有如此多的web框架?因为实现一个太简单了。。

bitworking.org/news/Why 在文章中,Joe Gregorio 为了展示任何人可以通过 Python 快速创建自个儿的 Web 应用框架,当场使用 8 个文件(6 个 Python 脚本,一个页面模板文件,一个服务器脚本)创建并运行了一个含有足够功能的应用框架!

好了,下面简单介绍几款吧:
  1. .Zope:Zope 发布年代之早,开发时间之长,造成的影响之大,甚至于有人认为“未来互联网就是 Zope”。 开创了一系列 Web 应用开发的新技术和理念;形成了宏大的社区和模块树; 虽然学习曲线实在太陡,但是过来人都说“只要是作 Web 应用开发,学到底就会发现,其实一切都在 Zope 中实现过了!”
  2. Twisted:Twisted也是老牌社区的作品,关注网络应用底层支持,支持几乎所有网络协议,关注企业级的网络服务构建;只是缺少立等可取的应用框架,一切都得用 Twisted 去现实,算是提供了成套的钻石级工具箱!
  3. CherryPy、Quixote(豆瓣)、Karrigell、web.py 等都轻小型框架:标志特性是没有内置的数据库(类似 MySQL 的关系型主流数据库)支持模块。突出的共同特色有:
  • 配置简便;
  • 模板系统简单轻便,或是可以自由使用外部模板系统;
  • 调试相对方便,有的甚至有专门的问题回溯机制。
  • Django、TurboGears、Eurasia、UliWeb等:突出的共同特色有:
    • 有内置的 ORM 模块支持数据库的对象化操作;
    • 有内置的事务性功能支持(比如说登录认证);
    • 有高级的模板系统,支持复杂的页面组合,有的甚至有内置的 Ajax 页面动态效果支持。
    根据关键功能组件的实现,又分两类:
    • “All in one 式”:任何方面的功能都是自行开发内置包含的;胜在内部契合严密,所以运行效率比较好;但是,一旦有问题就非常难以清查,而且一般很难做到平滑的版本兼容;吻合框架针对的领域开发起来比较直接,但是难以定制支持另外的情景,Django是其中之翘楚。
    • “Mix-in 式”:多数方面的功能是直接使用第三方模块来完成的;胜在选择自由,可以使用各种类似的已熟悉的功能组件来替代默认的,学习成本小;而且各个组件可以单独升级,版本兼容危机小;但是,由于要兼顾各种组件接口,隐患要多些,又是通过中间层来进行配合的,数据通过了很多类转发,运行效能可能比较低;TurboGears 是其中的经典作品。
    (摘自:《可爱的python——哲思社区》 ::>_<::未经授权)

  • Instagram,豆瓣,42qu,知乎,Youtube 都是用Python建的。

    对于新手的学习建议:
    flask.django 都可以作为Python建站的框架,新手的话先参考廖雪峰的Python教程 不要只看基础知识
    主要做后面的建站项目 遇见不熟悉的再翻前面的基础 学习时间差不多一个月左右
    中途可以去下w3c 简单了解下前端HTML CSS js 不要求熟练 能大致看懂就可以
    然后写一个增删改查的前端操作页面..差不多入门了


    作者:白菜猫
    链接:https://www.zhihu.com/question/20414620/answer/108705145
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    几乎任何语言都可以建站,语言只是工具而已。python当然可以。
    其实用python 自带了 wsgiref 就可以不需要框架搭建web。据说flask 开始版本也只有500行!
    建网站是python的强项,框架特别多,一搜一大把,随便学一个都能很容易做个小网站。

    ————————————————————————————————————

    但也有推荐php的:

    来源:http://bbs.csdn.net/topics/390459950

    做网站php,做服务器开发python
    给一个较肤浅的两者比较:
    1.语言方面两者可比性不高,python略微比php代码短,如果熟悉SPL(python目前还没有递归器,要靠自写,但SPL内有提供),php也能写出很精干的代码
    2.两者区别较大还是在周边
    1)两者的资料都不少,但php中文资料丰富些,python深入的资料多是英文
    2)架设网站,python比php难得多,至少你想找个能提供支持python的空间几乎没有,只能自己架设,光这点就可以断定目前应选php做网站
    3)python目前面临一个问题,就是py2和py3相距甚远(有点像当年php4->php5的过渡期),且很多成熟的框架都是基于py2开发的,虽然陆续有些已过渡或正在过渡到py3,但对使用者选择py2还是py3是个艰难的决定
    4)php较偏字符串处理(仅指与python比较),因为网络数据传输都是字符串/字节型传输;python的处理能力覆盖面大些,至少科学运算和文件处理能力要比php强

    php天生就是为了做网站的,官方在这方面下的功夫也显然比python多很多
    但想做一些系统级的开发又不想使用c/c++,.net,java这类严谨的语言,可以考虑python

    ———————————————————————————————————

    对Python的几个框架的指导:

    来源:http://blog.csdn.net/huyoo/article/details/1395463

    Python是一种动态编程语言。 

    python的web framework

    如果你想使用Python做网站,目前存在很多优秀的网站快速开发框架供你选择。 
    就我目前知道而且用过的,就有 zope 和 plone 。你可以搜索一下。 

    网站架构中 Zope 和 Plone 有 Windows 安装文件,一路装好就可以用。 

    Quixote

    Quixote/CherryPy 如果用自带的web服务器也几乎是下载了就可以用的。 
    如果你使用 Quixote : 
    最简单使用 Quixote 的方法: 
    1、安装好 Python ; 
    2、把 python 的目录加到你的环境变量 path 里面,不加也可以,就是每次自己打路径; 
    3、下载,解压缩 Quixote,文档在 doc 目录里面; 
    4、解压缩后,安装 Quixote,在 Quixote 目录里面:python setup.py install。 
    5、在Quixote 的 server 目录里面运行 python simple_server.py,访问 http://localhost:8080/ 看看。 


    稍微复杂一点。 

    Django

     不错,加上个 sqlite3 做后台,然后用 gvim 写程序

    在WIN下架设APACHE+MYSQL麻烦的话,可以用WampServer,集成了apache/mysql/php了,再就是给APACHE配MOD_PYTHON和DJANGO了

    Karrigell 

    也不错,如果系统已安装 python,直接解压运行即可。自带演示,包括应用(wiki/Bussiness/task/html edit)和组件(页面模板、RequestHandler参数调试、Cooki等),很方便! 
    补充一下,Karrigell内建的buzhug数据库也要 python setup.py install 一下,这样Karrgell里面的demo才可以运行 

    也可以试试pylons.它的调试,很有特点。 


    webpy.org   你会喜欢他的 

    我倒是在用django 
    搭建环境:  XP sp2 + python 2.4.3 + django 0.95 
    搭建环境: win2003+ python 2.4.3 + django 0.95 

    python+Django+apache+mysql


    感觉这些Web framework都是非常简洁方便的。

    使用python做的中文网站:

    豆瓣网 : http://www.douban.com

     豆瓣网的服务器环境: 

    服务器OS+WebServer+Python & Version + Web Framwork 

    gentoo+lighttpd..

     

     网友对这些构架的评论

    zope 对大访问量支持不好 

    psp 配置过于困难 

    pythonCGI 效率也不是很好
     

     

    Django