如何使用Flask框架来显示数据库中的表格数据?

Flask 显示数据库表格

在 Web 开发中,Flask 是一个轻量级的 Python Web 框架,而 SQLAlchemy 是其常用的 ORM(对象关系映射)库,本文将介绍如何使用 Flask 和 SQLAlchemy 来显示数据库表格

flask显示数据库表格

环境配置

你需要安装 Flask 和 SQLAlchemy:

pip install flask sqlalchemy

创建 Flask 应用和 SQLAlchemy 模型

1、初始化 Flask 应用

创建一个名为app.py 的文件,并初始化 Flask 应用:

   from flask import Flask, render_template
   from flask_sqlalchemy import SQLAlchemy
   app = Flask(__name__)
   app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
   app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
   db = SQLAlchemy(app)

2、定义模型

app.py 文件中定义你的数据模型,我们创建一个简单的User 模型:

flask显示数据库表格

   class User(db.Model):
       id = db.Column(db.Integer, primary_key=True)
       name = db.Column(db.String(80), unique=True, nullable=False)
       email = db.Column(db.String(120), unique=True, nullable=False)
       def __repr__(self):
           return f'<User {self.name}>'

3、创建数据库

使用 Flask-Shell 或直接运行脚本来创建数据库:

   with app.app_context():
       db.create_all()

插入数据

你可以在 Flask shell 中插入一些示例数据:

from app import db, User
插入一些示例数据
db.session.add(User(name='Alice', email='alice@example.com'))
db.session.add(User(name='Bob', email='bob@example.com'))
db.session.commit()

查询并显示数据

1、创建视图函数

app.py 文件中创建一个视图函数来查询并显示用户数据:

flask显示数据库表格

   @app.route('/users')
   def show_users():
       users = User.query.all()
       return render_template('users.html', users=users)

2、创建模板

在项目的templates 目录下创建一个名为users.html 的文件,用于显示用户数据:

   <!DOCTYPE html>
   <html lang="en">
   <head>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Users</title>
   </head>
   <body>
       <h1>Users</h1>
       <table border="1">
           <tr>
               <th>ID</th>
               <th>Name</th>
               <th>Email</th>
           </tr>
           {% for user in users %}
               <tr>
                   <td>{{ user.id }}</td>
                   <td>{{ user.name }}</td>
                   <td>{{ user.email }}</td>
               </tr>
           {% endfor %}
       </table>
   </body>
   </html>

启动服务器

app.py 文件末尾添加以下代码以启动 Flask 服务器:

if __name__ == '__main__':
    app.run(debug=True)

运行python app.py,然后在浏览器中访问http://127.0.0.1:5000/users,你应该能看到一个显示用户数据的表格。

相关问题与解答

问题 1:如何修改用户信息?

答:要修改用户信息,可以使用 SQLAlchemy 的更新方法,如果你想更新用户的电子邮件地址,可以这样做:

user = User.query.filter_by(name='Alice').first()
if user:
    user.email = 'newemail@example.com'
    db.session.commit()

问题 2:如何删除用户?

答:要删除用户,可以使用 SQLAlchemy 的删除方法,如果你想删除名为 Bob 的用户,可以这样做:

user = User.query.filter_by(name='Bob').first()
if user:
    db.session.delete(user)
    db.session.commit()

到此,以上就是小编对于“flask显示数据库表格”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/728792.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-12-12 22:35
Next 2024-12-12 22:38

相关推荐

  • python怎么保存为html文件

    Python是一种广泛使用的高级编程语言,其强大的功能和易读性使其在各种领域都有广泛的应用,在Web开发中,Python也是一个非常有用的工具,本文将介绍如何使用Python将内容保存为HTML文件。什么是HTML文件?HTML(HyperText Markup Language)即超文本标记语言,是用于创建网页的标准标记语言,HTM……

    2024-01-12
    0168
  • sqlalchemy column

    在SQLAlchemy中,Column是用于定义数据库表结构的基本单位,它表示表中的一列,可以包含各种属性来描述该列的特征,其中之一就是默认值属性(default)。默认值属性用于指定当插入新行时,如果没有为该列提供具体的值,将自动使用该默认值作为该列的值,这对于创建表时需要为某些列提供默认值非常有用,例如时间戳、状态等。下面将详细介……

    2024-01-24
    0101
  • 如何利用Flask框架快速搭建一个高效的网站?

    Flask网站开发指南Flask是一个基于Python的微型Web框架,以其简洁和灵活性而闻名,本文将详细介绍如何使用Flask创建一个简单的Web应用,并逐步扩展其功能,以下是具体内容:一、简介Flask是一个轻量级的Python Web框架,非常适合初学者和小型项目,它提供了基本的路由和请求处理功能,同时允……

    2024-12-13
    01
  • Python超级明星WEB框架Flask

    Flask是一个轻量级的Python Web框架,易于学习、使用灵活,适用于快速构建小型Web应用和API。

    2024-06-01
    078
  • 如何高效地管理API源代码?

    我可以提供一个详细的API管理源代码示例,这个示例将包括用户注册、登录、数据存储和检索功能,我们将使用Python的Flask框架来构建这个API,确保你已经安装了Flask和SQLAlchemy,你可以使用以下命令进行安装:pip install Flask SQLAlchemy接下来是完整的代码示例:fro……

    2024-12-01
    02
  • python微服务框架有哪些

    Python微服务框架随着互联网的发展,微服务架构已经成为了软件开发的一种主流方式,微服务架构将一个大型的单体应用拆分成多个独立的、可独立部署的小应用,每个小应用都有自己的数据库和业务逻辑,这种架构方式可以提高系统的可扩展性、可维护性和可靠性,在Python领域,有许多优秀的微服务框架可供选择,如Flask、Django、FastAP……

    2023-12-01
    0173

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入