Python Web开发入门:怎么用代码构建网页

Cora
Cora
发布时间:2026-10-20 | 7人浏览过
原创

用 Python 构建网页的核心逻辑非常简单:编写一段后端程序,让它在计算机端口上持续监听网络请求,当浏览器发送访问地址时,程序根据路由规则读取数据、拼装出标准的 HTML 文本并返回给浏览器渲染展示。

一、Python 怎么“变成”网页:理解请求与响应

很多初学者以为构建网页必须直接在浏览器里画界面,但从底层运行机制来看,网页本质上是一段符合 HTML 语法规范的纯文本字符串。平时我们在本地双击打开 index.html,是由浏览器直接从本地硬盘读取文件;而在 Web 交互中,这个文件是由远端的 Python 脚本实时生成的。

当用户在浏览器地址栏输入网址并按下回车,整个流程可以分为四个连续环节:

  1. 发起请求(HTTP Request):浏览器打包用户意图(例如请求访问首页 /),通过网络发送给服务器指定的 IP 与端口。
  2. 路由分发(Routing):Python 服务端程序接收到网络字节流,提取出请求路径,寻找对应的处理函数。
  3. 逻辑执行与文本组装:Python 函数执行计算、查询数据库或填充参数,组装出最终的 HTML 字符串。
  4. 返回响应(HTTP Response):Python 把 HTML 连同状态码(如 200 OK)打包返回,浏览器解析后在屏幕上绘制出排版整齐的页面。
Python Web开发入门:怎么用代码构建网页
图1:浏览器与 Python Web 服务的请求响应流程图

二、静态网页与 Python 动态网页的差异

理解为什么使用 Python 构建网页,关键在于区分“静态内容”与“动态构建”。

如果一个网页的内容永不改变(例如一份固定的公司简介),直接写静态 HTML 最为省事。但现代网络应用往往需要具备数据互动能力:例如显示当前登录用户的姓名、展示实时更新的待办清单、或是根据表单输入保存留言。静态网页无法自行完成逻辑判断和数据持久化,这正是 Python 后端介入的核心价值。

Python Web开发入门:怎么用代码构建网页
图2:静态网页与 Python 动态网页工作模式对比

三、实操演练:用 Flask 框架写出你的第一个网页

从底层标准库 http.server 纯手工解析字符串非常繁琐,业界通常借助 Web 框架。Python 社区中最适合初学者起步的微框架是 Flask。它的设计极简,只保留了最关键的路由与请求转发功能。

步骤 1:安装 Flask 依赖

打开终端(命令行工具),执行以下安装命令:

pip install flask

命令执行完毕后,可通过 python -c "import flask; print(flask.__version__)" 检查是否成功引入。

步骤 2:创建并编写核心程序 app.py

新建一个目录(如 my_first_web),在其中创建文件 app.py,输入以下完整代码:

from flask import Flask, render_template_string

app = Flask(__name__)

# 路由定义:当访问网站根目录 "/" 时,执行 index 函数
@app.route("/")
def index():
    # 模拟从 Python 业务逻辑中产出的数据
    user_name = "开发探索者"
    courses = ["Python 语法基础", "HTTP 协议常识", "HTML 页面结构", "动态模板渲染"]
    
    # 包含动态变量语法的 HTML 模板字符串
    html_template = """
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Python 构建的第一个网页</title>
        <style>
            body { font-family: sans-serif; padding: 30px; background: #fafafa; }
            .card { background: white; padding: 20px; border-radius: 8px; border: 1px solid #ddd; }
            h1 { color: #2B6CB0; }
        </style>
    </head>
    <body>
        <div class="card">
            <h1>你好,{{ name }}!</h1>
            <p>这是通过 Python 后端代码动态构建并输出的网页。</p>
            <h3>今日学习要点:</h3>
            <ul>
                {% for item in items %}
                    <li>{{ item }}</li>
                {% endfor %}
            </ul>
        </div>
    </body>
    </html>
    """
    # 将变量传给模板引擎,渲染出最终完整的 HTML 文本并返回
    return render_template_string(html_template, name=user_name, items=courses)

if __name__ == "__main__":
    # 启动本地开发服务器,监听 5000 端口
    app.run(host="127.0.0.1", port=5000, debug=True)
代码关键点解释:
  • @app.route("/"):装饰器语法,用于建立浏览器访问路径与 Python 函数的映射关系。
  • {{ name }} 与 {% for item in items %}:这是 Jinja2 模板引擎语法,Python 在返回前会自动把列表与变量替换成纯 HTML 标签。

步骤 3:启动本地 Web 服务

在当前包含 app.py 的目录下运行:

python app.py

终端中会显示启动日志,提示:Running on http://127.0.0.1:5000,此时说明 Python 已经在 5000 端口进入监听就绪状态。

步骤 4:在浏览器查看网页

打开 Chrome、Edge 或 Safari 等浏览器,在地址栏输入 http://127.0.0.1:5000 并按回车。此时浏览器向 Python 进程发起请求,页面上将呈现出由 Python 循环渲染出的待办列表与问候语。

Python Web开发入门:怎么用代码构建网页
图3:从写代码到浏览器看到网页的 4 步执行全过程

四、进阶认知:Python Web 生态的全景与选型

完成了简单的单文件网页后,随着项目规模扩大,直接把所有 HTML 写在 Python 字符串里会导致代码臃肿难以维护。实际工程中会引入规范的项目分层:

  • 模板独立(Templates 目录):将 HTML 代码单独存放在 templates/index.html 中,Python 仅通过 render_template('index.html', ...) 进行数据注入。
  • 静态资源管理(Static 目录):样式表(CSS)、前端交互脚本(JS)以及图片放置在 static/ 目录下,由 Web 服务提供下载。
  • 数据持久化(ORM / 数据库):使用 SQLite、MySQL 或 PostgreSQL 保存数据,通过 SQLAlchemy 等对象关系映射工具操作表记录。
Python Web开发入门:怎么用代码构建网页
图4:从初学到工程化的 Python Web 完整技术全景地图

五、初学者常见问题与注意事项

在本地用 Python 构建并调试网页时,通常容易遇到以下几个具体问题:

  • 端口被占用(Address already in use):如果上次运行的 Python 进程没有正常退出,再次启动 python app.py 会报错。此时可以把 port=5000 改为 port=5001 或 8080,或者在任务管理器中结束残留的 Python 进程。
  • 模板中的特殊字符转义:Jinja2 默认会对 HTML 标签进行安全转义(防止 XSS 攻击)。如果你发现 Python 传过去的 <b>文字</b> 被原样打印在屏幕上而不是加粗,需要在模板中使用 {{ variable | safe }} 明确告知引擎该文本为安全 HTML。
  • 开发服务器与生产部署的区别:app.run() 启动的是仅供本地单人调试的轻量服务。若要将网页发布到公网供多人访问,需要使用生产级 WSGI 服务器(如 Gunicorn 或 uWSGI)配合 Nginx 进行代理分发。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表