使用 Python 构建一个简单的 Web 应用:从零开始的 Flask 入门指南

昨天 9阅读

在现代软件开发中,Web 应用已经成为主流。无论你是想构建一个个人博客、企业官网,还是一个复杂的后端服务,掌握 Web 开发技术都是必不可少的技能之一。Python 以其简洁优雅的语法和丰富的库支持,在 Web 开发领域也占据了一席之地。

本篇文章将带你使用 Python 的轻量级 Web 框架 Flask,从零开始构建一个简单的 Web 应用程序。我们将通过实际代码演示如何创建一个包含主页、关于页面以及用户输入处理的基本网站。整个过程不需要太多前端知识,适合刚入门 Web 开发的新手。


什么是 Flask?

Flask 是一个基于 Python 的微框架,它非常轻量,但功能齐全,非常适合快速开发小型到中型的 Web 应用。Flask 不像 Django 那样内置了 ORM、认证系统等完整功能,但它灵活易用,适合学习和快速原型开发。


准备工作

1. 安装 Python 环境

确保你的计算机上安装了 Python 3.6 或更高版本。可以通过命令行检查:

python --version

python3 --version

2. 安装 Flask

我们推荐使用虚拟环境来管理项目依赖。首先创建并激活虚拟环境:

python -m venv venvsource venv/bin/activate   # Linux/macOSvenv\Scripts\activate      # Windows

然后安装 Flask:

pip install flask

构建第一个 Flask 应用

我们将构建一个包含三个页面的简单网站:

主页 /关于页 /about表单提交页 /greet

1. 项目结构

my_flask_app/│├── app.py└── templates/    ├── index.html    └── about.html

2. 编写主程序 app.py

from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/')def home():    return render_template('index.html')@app.route('/about')def about():    return render_template('about.html')@app.route('/greet', methods=['GET', 'POST'])def greet():    if request.method == 'POST':        name = request.form.get('name')        return f"Hello, {name}!"    return '''        <form method="post">            Name: <input type="text" name="name"><br>            <input type="submit" value="Submit">        </form>    '''if __name__ == '__main__':    app.run(debug=True)

3. 创建模板文件

templates 文件夹中创建两个 HTML 文件:

index.html

<!DOCTYPE html><html><head>    <title>Home Page</title></head><body>    <h1>Welcome to My Website!</h1>    <p>This is the homepage of our Flask application.</p>    <ul>        <li><a href="/">Home</a></li>        <li><a href="/about">About</a></li>        <li><a href="/greet">Greet Me</a></li>    </ul></body></html>

about.html

<!DOCTYPE html><html><head>    <title>About Us</title></head><body>    <h1>About This Project</h1>    <p>This website was built using Flask and Python as part of a learning tutorial.</p>    <a href="/">Back to Home</a></body></html>

运行应用

在终端中进入项目目录,运行:

python app.py

你会看到类似输出:

 * Running on http://127.0.0.1:5000/

打开浏览器访问以下地址:

http://localhost:5000 —— 主页http://localhost:5000/about —— 关于页http://localhost:5000/greet —— 输入名字打招呼

进阶内容:使用 Jinja2 模板继承

为了减少重复代码,我们可以使用 Flask 内置的 Jinja2 模板引擎提供的“继承”功能。创建一个基础模板 base.html,其他页面继承它。

修改模板结构如下:

my_flask_app/│├── app.py└── templates/    ├── base.html    ├── index.html    └── about.html

base.html

<!DOCTYPE html><html><head>    {% block title %}<title>My Flask Site</title>{% endblock %}</head><body>    <nav>        <a href="/">Home</a> |        <a href="/about">About</a> |        <a href="/greet">Greet</a>    </nav>    <hr>    {% block content %}{% endblock %}</body></html>

修改 index.html

{% extends "base.html" %}{% block title %}<title>Home Page</title>{% endblock %}{% block content %}<h1>Welcome to My Website!</h1><p>This is the homepage of our Flask application.</p>{% endblock %}

修改 about.html

{% extends "base.html" %}{% block title %}<title>About Us</title>{% endblock %}{% block content %}<h1>About This Project</h1><p>This website was built using Flask and Python as part of a learning tutorial.</p>{% endblock %}

重启服务器后,你会发现导航栏统一了,且代码更易于维护。


部署你的 Flask 应用(可选)

如果你想让别人也能访问你的网站,可以考虑将其部署到云服务器或 PaaS 平台上。常用的有:

HerokuRenderPythonAnywhere

以 Heroku 为例,你需要创建一个 Procfilerequirements.txt

pip freeze > requirements.txt

Procfile 内容为:

web: python app.py

然后使用 Heroku CLI 部署即可。


总结

本文通过一个完整的示例,介绍了如何使用 Flask 构建一个简单的 Web 应用。我们涵盖了:

Flask 基础路由配置模板渲染与表单处理模板继承机制简单部署方式

虽然这个项目还很基础,但它为你打开了通往更复杂 Web 开发的大门。接下来你可以尝试集成数据库(如 SQLite)、实现用户登录系统、使用蓝图(Blueprint)组织项目结构等。

如果你对这个方向感兴趣,不妨继续深入学习 Flask 或转向全栈框架如 Django,进一步提升你的 Web 开发能力!


附录:完整源码仓库参考

你可以将上述所有代码整理成一个 GitHub 项目用于练习和分享。例如:

git initgit add .git commit -m "Initial commit"

上传至 GitHub 后即可作为你自己的开源作品展示。


作者信息:

技术博客:example.com/blogGitHub:@yourgithub

如需进一步交流,请留言或发送邮件至 your@email.com。

免责声明:本文来自网站作者,不代表CIUIC的观点和立场,本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。客服邮箱:ciuic@ciuic.com

目录[+]

您是本站第1181名访客 今日有13篇新文章

微信号复制成功

打开微信,点击右上角"+"号,添加朋友,粘贴微信号,搜索即可!