引言
Flask 是一个轻量级的 Web 框架,使用 Python 编写,非常适合新手入门。随着项目的复杂度增加,数据库交互成为必不可少的环节。本文将带你了解如何在 Flask 中与数据库进行交互,实现高效的数据管理。
Flask 简介
Flask 是一个开源的 Web 框架,由 Armin Ronacher 开发。它遵循 WSGI 协议,可以与多种数据库后端进行集成,如 SQLite、MySQL、PostgreSQL 等。Flask 的核心功能包括路由、模板引擎和请求对象。
数据库基础
在开始之前,你需要了解一些数据库基础知识。以下是几种常见的数据库类型:
- 关系型数据库(RDBMS):如 MySQL、PostgreSQL 和 SQLite。它们使用表格来存储数据,并支持复杂查询。
- 非关系型数据库(NoSQL):如 MongoDB 和 Redis。它们使用不同的数据结构,如键值对、文档或列,以适应不同的数据存储需求。
安装 Flask 和数据库驱动
首先,你需要安装 Flask 和相应的数据库驱动。以下是一个简单的示例:
pip install Flask
pip install Flask-SQLAlchemy
pip install pymysql # MySQL 数据库驱动
配置数据库
在 Flask 应用中配置数据库,通常在 config.py 文件中完成:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://username:password@host/dbname'
SQLALCHEMY_TRACK_MODIFICATIONS = False
这里,SQLALCHEMY_DATABASE_URI 是数据库的连接字符串,包括数据库类型、用户名、密码、主机和数据库名。
创建数据库模型
使用 SQLAlchemy 创建数据库模型,它是一个强大的 SQL 工具包和对象关系映射(ORM)系统。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
这里,我们定义了一个 User 模型,包含 id、username 和 email 字段。
数据库交互
创建和添加数据
使用 SQLAlchemy 的 session 对象来创建和添加数据。
new_user = User(username='john_doe', email='john@example.com')
db.session.add(new_user)
db.session.commit()
查询数据
使用 session.query() 来查询数据。
user = db.session.query(User).filter_by(username='john_doe').first()
print(user.email)
更新和删除数据
使用 session.query() 来更新和删除数据。
user = db.session.query(User).filter_by(username='john_doe').first()
if user:
user.email = 'john_new@example.com'
db.session.commit()
db.session.delete(user)
db.session.commit()
总结
通过本文的学习,你现在已经可以开始在 Flask 中使用数据库进行数据管理了。掌握这些基本技能后,你可以继续探索更高级的功能,如关联、聚合、事务等。祝你学习愉快!
