找回密码
 立即注册
查看: 417|回复: 0

[后端] 基于python flask实现网页与数据库的交互连接

[复制链接]

279

主题

0

回帖

964

积分

超级版主

积分
964
发表于 2024-6-1 12:46:29 | 显示全部楼层 |阅读模式
本帖最后由 Shaw0xyz 于 2024-6-9 13:50 编辑

1. 简介

Python Flask 是一个轻量级的 Web 框架,常用于构建简单而强大的 Web 应用程序。在现代 Web 应用中,与数据库的交互是必不可少的。本篇文章将详细介绍如何基于 Python Flask 实现网页与数据库的交互连接。

1.1 环境准备

在开始之前,需要确保系统中安装了以下组件:
(1) Python
(2) Flask
(3) 数据库(本文以 SQLite 为例)

安装 Flask:

  1. pip install flask
复制代码


安装 SQLite 驱动:

  1. pip install sqlite3
复制代码


1.2 创建 Flask 项目

首先,创建一个新的目录用于存放项目文件,然后在该目录下创建一个名为 app.py 的文件。

1.2.1 初始化 Flask 应用

在 app.py 文件中,初始化一个 Flask 应用:

  1. from flask import Flask, request, render_template
  2. import sqlite3

  3. app = Flask(__name__)
复制代码


1.3 数据库配置

1.3.1 创建 SQLite 数据库

在项目目录下创建一个名为 database.db 的 SQLite 数据库文件。在该数据库中创建一个用户表,用于存储用户信息。

连接数据库并创建表:

  1. conn = sqlite3.connect('database.db')
  2. c = conn.cursor()
  3. c.execute('''
  4.           CREATE TABLE user
  5.           (id INTEGER PRIMARY KEY AUTOINCREMENT,
  6.           name TEXT NOT NULL,
  7.           Email TEXT NOT NULL UNIQUE)
  8.           ''')
  9. conn.commit()
  10. conn.close()
复制代码


1.4 路由和视图函数

1.4.1 创建主页路由

创建一个简单的主页路由,在 app.py 文件中添加以下代码:

  1. @app.route('/')
  2. def index():
  3.     return "Welcome to the Flask Web App!"
复制代码


1.4.2 创建用户注册路由

用户注册页面允许用户提交信息,这些信息将被存储到数据库中。创建一个新的模板文件 register.html 用于用户输入。

register.html 文件内容:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Register</title>
  5. </head>
  6. <body>
  7.     <h1>Register</h1>
  8.     <form action="/register" method="post">
  9.         <label for="name">Name:</label>
  10.         <input type="text" id="name" name="name"><br>
  11.         <label for="email">Email:</label>
  12.         <input type="text" id="email" name="email"><br>
  13.         <input type="submit" value="Register">
  14.     </form>
  15. </body>
  16. </html>
复制代码


在 app.py 文件中添加以下代码以处理注册请求:

  1. @app.route('/register', methods=['GET', 'POST'])
  2. def register():
  3.     if request.method == 'POST':
  4.         name = request.form['name']
  5.         email = request.form['email']
  6.         conn = sqlite3.connect('database.db')
  7.         c = conn.cursor()
  8.         c.execute("INSERT INTO user (name, email) VALUES (?, ?)", (name, email))
  9.         conn.commit()
  10.         conn.close()
  11.         return "User registered successfully!"
  12.     return render_template('register.html')
复制代码


1.4.3 创建用户列表路由

创建一个显示所有注册用户的页面。在 app.py 文件中添加以下代码:

  1. @app.route('/users')
  2. def users():
  3.     conn = sqlite3.connect('database.db')
  4.     c = conn.cursor()
  5.     c.execute("SELECT * FROM user")
  6.     users = c.fetchall()
  7.     conn.close()
  8.     return render_template('users.html', users=users)
复制代码

创建一个新的模板文件 users.html 用于显示用户列表。

users.html 文件内容:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Users</title>
  5. </head>
  6. <body>
  7.     <h1>Registered Users</h1>
  8.     <ul>
  9.         {% for user in users %}
  10.         <li>{{ user[1] }} - {{ user[2] }}</li>
  11.         {% endfor %}
  12.     </ul>
  13. </body>
  14. </html>
复制代码

1.5 运行应用

在 app.py 文件末尾添加以下代码以运行 Flask 应用:

  1. if __name__ == '__main__':
  2.     app.run(debug=True)
复制代码


保存所有文件后,运行以下命令启动 Flask 应用:

  1. python app.py
复制代码


1.6 测试

打开浏览器,访问 http://127.0.0.1:5000/,您将看到欢迎页面。
访问 http://127.0.0.1:5000/register 可以看到用户注册页面,提交表单后访问 http://127.0.0.1:5000/users 可以看到所有注册用户的列表。


2. 总结

本文详细介绍了如何使用 Python Flask 框架与 SQLite 数据库进行交互,包括如何配置环境、创建数据库、编写路由和视图函数,以及如何展示用户数据。这些步骤构成了一个完整的 Web 应用开发流程,为进一步扩展和开发奠定了基础。通过这些操作,您可以轻松实现网页与数据库的交互功能。



/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & linux ...

~互撩~ TG: @Shaw_0xyz
荔枝学姐爱吃荔枝!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 13:56 , Processed in 0.056085 second(s), 23 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表