使用 Python 构建一个简单的 Web 应用程序

07-02 17阅读

在当今的软件开发中,Web 应用程序扮演着非常重要的角色。无论是企业级应用、社交平台还是个人博客,Web 技术都是支撑这些服务的核心。Python 作为一种简洁易读、功能强大的编程语言,在 Web 开发领域也有广泛的应用。本篇文章将介绍如何使用 Python 的 Flask 框架来构建一个简单的 Web 应用程序,并展示一些基本的功能实现。

1. 环境准备

在开始编写代码之前,我们需要准备好开发环境。以下是所需的工具和库:

Python 3.xpip(Python 包管理器)Flask(轻量级 Web 框架)

安装 Flask 非常简单,只需在终端运行以下命令即可:

pip install Flask

2. 创建第一个 Flask 应用

Flask 是一个微框架,非常适合快速开发小型 Web 应用。下面我们来创建一个最简单的 Flask 应用。

示例代码:app.py

from flask import Flaskapp = Flask(__name__)@app.route('/')def home():    return "欢迎来到我的第一个 Flask Web 应用!"if __name__ == '__main__':    app.run(debug=True)

运行应用

保存上述代码为 app.py,然后在终端执行:

python app.py

默认情况下,Flask 会在本地主机的 5000 端口启动服务器。打开浏览器访问 http://127.0.0.1:5000/,你将看到页面显示“欢迎来到我的第一个 Flask Web 应用!”。

3. 添加 HTML 页面支持

虽然返回字符串可以用于调试,但在实际项目中我们通常会使用 HTML 页面进行渲染。Flask 提供了模板引擎 Jinja2,可以方便地渲染 HTML 文件。

目录结构

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

编写 HTML 页面:templates/index.html

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <title>首页</title></head><body>    <h1>欢迎访问我的网站</h1>    <p>这是一个使用 Flask 构建的简单网页。</p></body></html>

修改 app.py 以渲染模板

from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def home():    return render_template('index.html')if __name__ == '__main__':    app.run(debug=True)

现在刷新页面,你会看到渲染后的 HTML 内容。

4. 处理用户输入与表单提交

Web 应用的一个常见需求是处理用户的输入。接下来我们将添加一个表单页面,用户可以在其中输入名字并提交,后端接收数据后返回问候语。

添加新页面:templates/form.html

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <title>输入你的名字</title></head><body>    <h3>请输入你的名字:</h3>    <form action="/greet" method="POST">        <input type="text" name="username" placeholder="输入你的名字">        <input type="submit" value="提交">    </form></body></html>

添加问候页面:templates/greeting.html

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <title>问候</title></head><body>    <h1>你好,{{ name }}!</h1>    <p>欢迎来到我们的网站。</p></body></html>

修改 app.py 以处理 POST 请求

from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/')def home():    return render_template('index.html')@app.route('/form')def show_form():    return render_template('form.html')@app.route('/greet', methods=['POST'])def greet():    username = request.form.get('username')    return render_template('greeting.html', name=username)if __name__ == '__main__':    app.run(debug=True)

现在你可以访问 http://127.0.0.1:5000/form 来填写表单并提交,系统会跳转到问候页面。

5. 数据持久化:使用 SQLite 存储用户信息

为了使我们的应用更加实用,我们可以引入数据库来存储用户提交的信息。这里我们使用 SQLite,它是 Python 自带的一种轻量级数据库。

安装 SQLite 扩展(可选)

虽然 Python 标准库自带了 sqlite3,但如果你需要更高级的操作,可以考虑使用 SQLAlchemy 或 Flask-SQLAlchemy。

pip install flask-sqlalchemy

修改 app.py 使用数据库

from flask import Flask, render_template, requestfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class User(db.Model):    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(80), unique=True, nullable=False)@app.route('/')def home():    return render_template('index.html')@app.route('/form')def show_form():    return render_template('form.html')@app.route('/greet', methods=['POST'])def greet():    username = request.form.get('username')    # 检查是否已存在该用户    existing_user = User.query.filter_by(name=username).first()    if not existing_user:        new_user = User(name=username)        db.session.add(new_user)        db.session.commit()    return render_template('greeting.html', name=username)@app.route('/users')def list_users():    users = User.query.all()    return render_template('users.html', users=users)if __name__ == '__main__':    with app.app_context():        db.create_all()  # 创建数据库表    app.run(debug=True)

添加用户列表页面:templates/users.html

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <title>用户列表</title></head><body>    <h3>所有用户:</h3>    <ul>        {% for user in users %}            <li>{{ user.name }}</li>        {% endfor %}    </ul></body></html>

现在你可以访问 http://127.0.0.1:5000/users 查看所有提交过名字的用户。

6. 总结

通过本文的学习,我们完成了以下内容:

搭建了一个基于 Flask 的 Web 应用;实现了 HTML 页面的渲染;掌握了表单提交与数据处理;引入了 SQLite 数据库进行数据持久化;使用 Flask-SQLAlchemy 简化数据库操作。

当然,这只是 Web 开发的冰山一角。在实际项目中,我们还需要考虑安全性(如 CSRF 防护)、用户认证、前端框架整合等更复杂的问题。但希望这篇文章能为你入门 Python Web 开发提供一个良好的起点。


参考资料:

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

目录[+]

您是本站第825名访客 今日有15篇新文章

微信号复制成功

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