Python web 开发一定要用框架吗?有没其它方法,类似 PHP 的语句

2025-01-04 11:29:12
推荐回答(1个)
回答1:

首先要记得,最早的、最基本的 CGI 程序,所谓的 web 输出不过就是由 web server 将这个程序输出的内容重定向给浏览器而已。#!/bin/bash

cat <HTTP/1.0 200 OK

Hello
EOF这都可以做一个最简单的 CGI 程序运行起来 :)
因为 CGI 依赖于 one-proc-per-request 模型,效率低下,所以后来有了内嵌到 Apache 服务器中的模块设计,比如 mod_php 等。
PHP 最常见(传统?)的部署形式,mod_php 就是作为 web server 附加组件运行的,所以很多事情是由设计默认、环境代为完成的,比如和 HTTP server 的通信等。
Python 更偏向于通用编程语言,如果要做 Web 开发,可以有两种方式:通过 Apache / Nginx 做前端;自己做 HTTP server。

Apache / Nginx 做前端的话,排除 CGI 不说,所需要了解的是 Python 和 HTTP server
接口的协议,如现在流行的 FastCGI 协议。Python 使用 FastCGI 协议最常见的接口是 WSGI API。web.py /
cherrypy 等许多框架就是从提供 WSGI 协议支持和简单回调接口相应客户请求作为设计起点的轻量级框架。

除此之外,Python 还可以不依赖 web server (Apache / Nginx),自己实现 HTTP 协议,如:
基于 Base / Simple / CGIHTTPServer
基于 SocketServer.TCPServer
基于 asyncore
基于 Twisted 等

方法不一而足。