零基础也能做网站!Python不用框架做网站实战案例全解析

零基础也能做网站!Python不用框架做网站实战案例全解析

自己不会代码想做网站,看到别人用Python做网站,觉得挺酷的,但不知道从哪下手,更别说不用框架了。其实,Python本身就自带了做网站的工具,不用框架也能搞定,而且特别适合新手入门。今天我就用一个实战案例,带你从零开始用Python不用框架做网站,一步步实现自己的小项目。

各自定位:Python原生做网站的几个选项

在Python中,虽然有Django、Flask等知名框架,但如果我们不使用框架,也可以用Python自带的模块来构建一个简单的网站。常见的几个方案包括使用http.server模块、SimpleHTTPServer(Python2.7)或者使用WSGI接口结合CGI脚本来实现。这些方法虽然不如框架强大,但对于学习网站开发、测试小功能、或快速搭建一个静态站点,都非常实用。

以下是三种不用框架做网站的常见方案及其定位:

方案名称 定位与用途 适用人群
http.server 用于快速测试静态文件,或作为开发服务器 新手、测试阶段使用
SimpleHTTPServer 仅限Python2.7,功能与http.server类似 已经使用Python2.7的开发者
WSGI + CGI 用于部署动态脚本,支持后端逻辑处理 熟悉CGI和WSGI的开发者

这些方案各有适用场景,接下来我们会详细对比它们的核心差异、代码写法、适用场景,以及适合哪些人来使用。

核心差异:三大方案对比表格

以下是三种方案的核心对比,从性能、开发难度、功能支持、部署复杂度、适用场景等多个维度进行对比:

对比维度 http.server SimpleHTTPServer WSGI + CGI
性能表现 低,仅支持静态内容 低,仅支持静态内容 中等,支持动态脚本
开发难度 极低,几乎零配置 极低,仅限Python2.7 中等,需要了解CGI/WSGI
功能支持 仅支持静态文件 仅支持静态文件 支持动态脚本、表单处理等
部署复杂度 极低,直接运行即可 极低,直接运行即可 中等,需配置服务器环境
适用场景 测试、静态页面展示 同上,仅限Python2.7 动态功能实现、简单交互

从对比表格可以看出,如果你只是想做个静态页面展示,http.server或SimpleHTTPServer是最佳选择。如果你需要一点后端逻辑,如处理表单、显示动态内容,那么WSGI + CGI就更适合你。

代码/配置写法对比:实战案例展示

下面我分别用三种方案,写一个简单的“Hello World”网站,并展示如何配置和运行。

方案1:使用 http.server(Python3)

# 示例代码:运行一个简单的HTTP服务器,展示静态文件
import http.server
import socketserverPORT = 8000Handler = http.server.SimpleHTTPRequestHandlerwith socketserver.TCPServer(("", PORT), Handler) as httpd:print(f"Serving on port {PORT}")httpd.serve_forever()

运行这个脚本后,Python会在当前目录下启动一个HTTP服务器,访问 http://localhost:8000 即可看到当前目录下的文件列表。这是最简单的方式,适合展示静态内容或测试。

方案2:使用 SimpleHTTPServer(Python2.7)

# 示例代码:Python2.7中运行一个静态HTTP服务器
import SimpleHTTPServer
import SocketServerPORT = 8000Handler = SimpleHTTPServer.SimpleHTTPRequestHandlerhttpd = SocketServer.TCPServer(("", PORT), Handler)
print "Serving on port", PORT
httpd.serve_forever()

这个脚本与上面的Python3版本几乎相同,但仅适用于Python2.7。目前Python2.7已经不再维护,因此不推荐新手使用。

方案3:使用 WSGI + CGI(动态内容)

# 示例代码:一个简单的CGI脚本,返回动态内容
print("Content-Type: text/html\n")
print("<html><body><h1>Hello, World!</h1></body></html>")

将上述脚本保存为 hello.py,并放在Web服务器的CGI目录下(如 /var/www/cgi-bin)。然后在 httpd.conf 中配置CGI支持:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">AllowOverride NoneOptions +ExecCGIAddHandler cgi-script .pyRequire all granted
</Directory>

运行后访问 http://yourserver/cgi-bin/hello.py,就能看到动态生成的“Hello, World!”页面。

适用场景:各方案的使用边界

了解了三种方案的差异后,我们再来看看它们各自最适合的应用场景。

1. http.server:静态文件展示 + 测试用

如果你只是想展示一个简单的静态网页,或者在开发过程中测试页面效果,http.server 是最便捷的方式。它不需要任何额外配置,也无需安装第三方库,非常适合初学者入门。

2. SimpleHTTPServer:仅限Python2.7环境的测试

虽然功能与 http.server 一致,但由于Python2.7已经停止维护,建议不要在新项目中使用。如果已有Python2.7环境,可用此方式做简单测试,但不推荐作为正式部署方案。

3. WSGI + CGI:动态脚本 + 简单后端逻辑

如果你需要展示动态内容,比如根据用户输入返回不同信息、处理表单、展示数据库内容等,使用 WSGI + CGI 模式是可行的。虽然部署比框架复杂,但它是学习后端逻辑的绝佳入门方式。

选型建议:不同需求,不同方案

需求类型 推荐方案 原因说明
静态页面展示 http.server 快速、零配置、无需代码基础
动态内容 + 表单处理 WSGI + CGI 支持后端逻辑,适合学习和小型项目
学习后端开发基础 WSGI + CGI 能理解HTTP请求、CGI、表单处理等基础
测试与开发环境 http.server 轻量、易用,适合项目初期测试
无需框架,但需要后端 WSGI + CGI 比框架更灵活,适合小项目或实验

如果你只是想做个展示页,推荐使用 http.server;如果你有简单后端需求,或想学后端逻辑,推荐使用 WSGI + CGI;如果已经熟悉框架,想尝试不用框架的方式,也可以用 WSGI + CGI 来做实验。

小结与互动钩子

用Python做网站,不一定要用框架,原生模块就能满足基本需求。不管是静态页面展示,还是简单的后端逻辑,都能找到合适的方案。关键是看你的需求和目标。

如果你对网站开发还有一堆疑问,比如:用Python做网站是不是真的能赚钱? 评论区留言,我一一给你解答。

💡
读完这篇文章,你可以带走什么

本文来自编程新知一线开发与建站实战沉淀:讲清原理、给出可复现步骤、标注避坑要点。看完后可以直接在你的项目或网站中落地验证。

编
编程新知内容团队
一线开发 · 建站实施 · 持续更新
由资深前端工程师、后端架构师与建站实施人员共同维护,坚持"真实案例 + 完整步骤 + 避坑指南"的内容准则。如果你在落地中遇到问题,欢迎联系我们交流。

想把这套方案用到自己的项目上?

编程新知提供技术答疑与网站建设一站式服务,欢迎联系我们获取针对性建议。

联系工程师
📚

系统学习该技术

进入对应栏目,从基础到进阶完整学习,配套案例与避坑指南。

前往栏目 →
🏗️

需要落地实施

企业建站、SEO 优化、服务器部署等需求,交给工程师一步到位。

了解服务 →
💬

还有疑问

技术难题或方案咨询,联系编程新知获取一对一的专业建议。

联系我们 →