用Python编写网站
我相当精通PHP,但想尝试一些新的东西 我还懂一点Python,足以做一些基础的工作,但还没有在web设计类型的情况下使用过 我刚刚写了这篇文章,它很有效:用Python编写网站,python,Python,我相当精通PHP,但想尝试一些新的东西 我还懂一点Python,足以做一些基础的工作,但还没有在web设计类型的情况下使用过 我刚刚写了这篇文章,它很有效: #!/usr/bin/python def main(): print "Content-type: text/html" print print "<html><head>" print "<title>Hello World from Python</title
#!/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()
#/usr/bin/python
def main():
打印“内容类型:文本/html”
打印
打印“”
打印“来自Python的Hello World”
打印“”
打印“你好,世界!”
打印“”
如果名称=“\uuuuu main\uuuuuuuu”:
main()
问题是,这看起来相当麻烦。如果不使用django这样的大型工具,那么编写能够处理get和post的脚本的最佳方法是什么?就完整框架而言,我认为django相对较小 如果你真的想要轻量级的,尽管,看看,然后 我想观众最喜欢的是塔架,但我是Django人,所以我不能说太多
有关轻量级Python框架的更多信息,请查看。Python中提供了几种web框架,它们将使您从大部分工作中解脱出来
对于Pylons,还有一个有趣的、在线可用的功能。我真的很喜欢django,在我看来它并不是很大。它非常强大,但不是很大
如果您想开始使用http和python,最简单的就是标准库中提供的BaseHttpServer。详细信息请参见我同意Paolo的观点-Django的规模非常小,还有一条路要走-但如果您不同意,我会将其添加到列表中如果您正在寻找框架,请查看以下列表: 若您需要小脚本(-s)或一次性作业脚本,那个么简单的CGI模块本身就足够了
如果您想创建比静态页面和简单表单更多的东西,我建议您坚持使用一些框架。我相信Django是最受欢迎和支持的。看看你的例子,你的问题是关于基本CGI脚本的,但似乎每个人都选择用“使用我最喜欢的框架”来回答。让我们尝试另一种方法 如果您正在寻找一个直接替代您上面所写内容(即CGI脚本),那么您可能正在寻找该模块。它是Python标准库的一部分。和中提供了免费功能。您可能还对和感兴趣,这也是标准库的一部分 进入更有趣的领域,让您了解界面的基本知识,这时您可能想开始考虑更“框架化”(这是一个词吗?)的东西,如web.py、Django、Pylons、CherryPy等,正如其他人所提到的。什么是“巨大”是一个品味问题,但Django是一个“完整的”框架,这包括从ORM到模板,再到各种各样的东西。所以它并不小(尽管比Grok和Zope3,其他全栈python web框架小) 但是也有很多非常小和极简的web框架,它们只为web部件提供一个框架。上面提到了许多。在列表中,我必须添加BFG和Bobo。这两种方法都非常简单,但仍然有用且灵活
在Python中,生成网站的方法是使用框架。大多数流行的(以及积极维护/支持的)框架已经提到 一般来说,我不认为Djano或Turbogears是“巨大的”,我认为它们是“完整的”。每一个都可以让你建立一个数据库支持的动态网站。对其中一个的偏好更多的是关于样式,而不是关于特征 另一方面,你确实觉得自己很“大”。就开箱即用的特性而言,Zope也是“企业”级。一件非常好的事情是,您可以使用ZODB(Zope对象数据库),而不必使用Zope的其余部分
如果我们知道你对开发什么样的网站感兴趣,肯定会有帮助,因为这可能有助于缩小建议的范围 在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>
你好,来自Python的世界
{{=message}
没有其他,没有安装,没有配置,您可以通过管理界面直接在web上编辑上面的两个文件。web2py基于wsgi,但如果没有mod_wsgi,它也可以与cgi、mod_python、mod_proxy和fastcgi一起使用。我本来打算添加TurboGears,但我觉得它即使不比Django大也一样大。我如何检查这样的东西?Python一开始看起来很麻烦的原因是PHP是围绕创建网页而构建的,它是自己的模板语言,它有一个用于请求处理、参数解析、cookie等的内置框架。另一方面,Python是一种通用语言,直接实现低级的web内容会让你们很快发疯。试图用“这是个坏主意”来回答你们的问题也许Django没有我当时想的那么大——我认为它相当于Rails或CakePHP。见鬼,我在一些非web应用程序中包括Django只是为了它的DB或模板支持。这个答案是正确的,肯定会让你探索用Python编写CGI。但是,学习Pythonic方法来解决这个特殊问题并没有帮助。这个问题的Pythonic方法可以在您得到的关于各种web框架的所有答案中找到,这些框架都是可用的,并且都处于积极的开发和支持之中。是的,但我想先了解一下在较低级别上是如何工作的。在这种情况下,忘掉CGI,把它看作WSGI。它也需要大约十分钟