【问题标题】:Python CGI without HTML clutter in source code?源代码中没有 HTML 混乱的 Python CGI?
【发布时间】:2011-04-01 17:29:12
【问题描述】:

我是网络开发的新手。经过深思熟虑后,我选择 Python 而不是 Ruby,仅仅是因为代码可读性对我来说很重要。我查看了一些 Python cgi 代码,我想知道是否有可能以我可以专注于程序功能而不必在 Python 源代码中嵌入(混乱)所有 HTML 格式代码的方式来完善该代码,即将实际的 Python 代码与 HTML 代码分开。也许这种编程风格会离开 CGI 领域进入其他领域? (即 CGI = 生成网页的脚本)。

【问题讨论】:

  • 谢谢大家!经过大量阅读,我决定将我的老式 CGI 做事方式转换为成熟的全栈框架:web2py。来自 Apple 的 XCode MVC 思维方式,web2py 将被证明非常易于部署!

标签: python html cgi


【解决方案1】:

选择template engine。而且还是CGI,只是碰巧是使用模板引擎的CGI; CGI 是接口,而不是编程方法。

【讨论】:

  • 感谢您打开一个全新的选项世界!对于简单的 HTML 页面生成,您建议使用哪个包?感谢您阐明 CGI 的含义。
  • 我是 Genshi 的粉丝,但也有人建议 Mako 或 Jinja2。
【解决方案2】:

可以以这样一种方式完善该代码,以便我可以专注于程序功能,而不必将所有 HTML 格式化代码嵌入(混乱)在 Python 源代码中

使用templating engine

也许这种编程风格将 CGI 领域带入了其他领域?

CGI 不是一种编程风格。它是 Web 服务器执行程序以确定向用户提供哪些数据的一种方式。 (这是一种缓慢且低效的方法,但也是一种非常简单的方法)。

如果您想摆脱 CGI 并继续使用 Python,那么您可能应该关注wsgi

【讨论】:

  • 将研究模板引擎。你能推荐一个吗?我也很好奇为什么 CGI 速度慢而且效率低。什么会更快? HTML 生成是否必须更快?感谢wsgi的建议,我去看看。
  • 我不能推荐一个,我的 Python 经验相当有限。 CGI 的性能问题是由于它必须为每个请求生成整个 Python(或任何你使用的)进程,这会增加启动成本。
  • 这可以通过将 mod_python 添加到 Apache 来消除,但你是对的,最简单形式的 CGI 是原始且昂贵的。
【解决方案3】:

Python 中的新 Web 应用程序代码不是使用 CGI 编写的,它基于 WSGI。将 HTML 生成与程序逻辑的其余部分分开确实是一件好事,应该使用模板引擎来完成。 Python 还有几个用于编写 Web 应用程序的框架;如果你刚刚开始,我推荐Flask

【讨论】:

  • Flask 比大肆宣传的 Django 更受欢迎的任何具体原因?
  • 如果你想构建它擅长的 CMS 风格的东西,Django 可能是一个不错的选择。 Flask 是一个更精简、更灵活的库,只需很少的工作即可开始使用。
猜你喜欢
  • 1970-01-01
  • 2015-02-26
  • 2014-05-04
  • 2018-09-08
  • 2013-05-27
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多