代码之家  ›  专栏  ›  技术社区  ›  Rich Bradshaw

用python编写网站

  •  19
  • Rich Bradshaw  · 技术社区  · 15 年前

    我非常精通PHP,但我想尝试一些新的东西。

    我对Python也有一些了解,足够做一些基础知识,但还没有在Web设计类型的情况下使用。

    我刚刚写了这篇文章,它的作用是:

    #!/usr/bin/python
    
    def main():
        print "Content-type: text/html"
        print
        print "<html><head>"
        print "<title>Hello World from Python</title>"
        print "</head><body>"
        print "Hello World!"
        print "</body></html>"
    
    if __name__ == "__main__":
        main()
    

    事实上,这看起来相当麻烦。如果不使用像django这样的大型工具,那么编写可以处理get和post的脚本的最佳方法是什么?

    9 回复  |  直到 12 年前
        1
  •  25
  •   esm    15 年前

    你的问题是关于基本的CGI脚本,看看你的例子,但似乎每个人都选择了用“使用我最喜欢的框架”来回答它。让我们尝试另一种方法。

    如果你想直接替换上面写的内容(如CGI脚本),那么你可能需要 cgi 模块。它是Python标准库的一部分。免费功能可在 urllib urllib2 . 你也可能对 BaseHTTPServer SimpleHTTPServer 也是标准库的一部分。

    进入更有趣的领域, wsgiref 为您提供了 WSGI 界面,此时您可能想开始考虑更多“框架”(这是一个词吗?)像web.py、django、pylons、cherrypy等其他人提到的。

        2
  •  11
  •   Community CDub    8 年前

    就完整框架而言,我认为Django相对较小。

    如果你 真的? 不过,想要轻便一点的,去看看吧。 web.py , CherryPy , Pylons web2py .

    我觉得上面的人群最喜欢的是塔架,但我是一个django人,所以我不能说太多。

    有关轻量级python框架的更多信息,请查看 this question .

        3
  •  8
  •   rob    15 年前

    在Python中有几个Web框架可用,这将使您从大部分工作中解脱出来。

    1. Django
    2. Pylons (以及基于它的新涡轮齿轮)。
    3. Web2py
    4. CherryPy (以及基于它的旧涡轮齿轮)

    我觉得姜戈并不像你说的那么“大”;不过,我认为塔架和奇瑞皮可能是你问题的更好答案。奇瑞比看起来更简单。但似乎也有点“通过”,而塔架正在积极发展中。
    对于塔架,还有一个有趣的 Pylons book ,在线提供。

        4
  •  2
  •   Stan Graves    15 年前

    在Python中,生成网站的方法是使用框架。已经提到了大多数流行的(以及积极维护/支持的)框架。

    一般来说,我不认为djano或turbogears是“巨大的”,我认为它们是“完整的”。每一个都可以让你建立一个数据库支持的动态网站。一个对另一个的偏好更多的是关于样式,而不是关于特征。

    Zope 另一方面,确实感觉“很大”。就开箱即用的特性而言,Zope也是“企业”类。一件非常好的事情是,您可以使用zodb(zope对象数据库),而不使用zope的其余部分。

    如果我们知道你对开发什么样的网站感兴趣,这当然会有所帮助,因为这可能有助于缩小建议的范围。

        5
  •  2
  •   Craig McQueen Dr. Watson    12 年前

    在web2py中,前面的代码是

    在控制器中 default.py :

    def main():
        return dict(message="Hello World")
    

    在视野中 default/main.html :

    <html><head>
    <title>Hello World from Python</title>
    </head><body>
    {{=message}}
    </body></html>
    

    没有别的,没有安装,没有配置,你可以通过管理界面直接在网上编辑上面的两个文件。web2py基于wsgi,但如果mod wsgi不可用,它也可以与cgi、mod_python、mod_proxy和fastcgi一起使用。

        6
  •  0
  •   luc    15 年前

    我真的很喜欢姜戈,但在我看来,这并不是很大的。它很强大,但并不巨大。

    如果您想开始使用http和python,最简单的事情就是标准库中提供的basehttpserver。看见 http://docs.python.org/library/basehttpserver.html 详情

        7
  •  0
  •   Shane C. Mason    15 年前

    我同意保罗的观点-姜戈很小,还有一条路要走-但是如果你不满意的话,我会补充 TurboGears 列入名单

        8
  •  0
  •   tefozi    15 年前

    如果要查找框架,请查看此列表: Python Web Frameworks

    如果您需要小脚本或一次性作业脚本,可能只需要简单的CGI模块就足够了。- CGI Scripts cgi module 本身。

    如果您想创建比静态页面和简单表单更多的东西,我建议您坚持使用一些框架。我相信姜戈是最受欢迎和支持的。

        9
  •  0
  •   Lennart Regebro    15 年前

    什么是“巨大的”是一个品味问题,但django是一个“完整的堆栈”框架,它包含了从ORM到模板再到Well和很多东西的所有内容。所以它并不小(尽管比Grok和Zope3,其他全栈python web框架小)。

    但是也有很多非常小和极简的Web框架,它们只为Web部件提供框架。上面提到了很多。在名单上我必须加上bfg和bobo。两者都非常小,但仍然有用且灵活。

    http://bfg.repoze.org/ http://bobo.digicool.com/