《每天5分钟用Flask搭建一个管理系统》 第6章:数据库集成

第6章:数据库集成

6.1 数据库的选择和配置

在Flask中集成数据库,首先需要选择一个数据库系统。常见的选择包括SQLite、MySQL、PostgreSQL等。选择后,需要配置数据库连接字符串。

示例代码:配置数据库

python 复制代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'  # 配置SQLite数据库
db = SQLAlchemy(app)
6.2 SQLAlchemy ORM简介

SQLAlchemy是一个流行的SQL工具包和对象关系映射(ORM)系统,可以用于Flask应用中。

示例代码:安装SQLAlchemy

bash 复制代码
pip install Flask-SQLAlchemy
6.3 数据模型的创建

在Flask中使用SQLAlchemy定义数据模型,这些模型将映射到数据库表。

示例代码:定义数据模型

python 复制代码
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'
6.4 数据库迁移和版本控制

数据库迁移是修改数据库结构(如添加、删除表或字段)的过程。Flask-Migrate是一个扩展,用于处理数据库迁移。

示例代码:安装Flask-Migrate

bash 复制代码
pip install Flask-Migrate

示例代码:初始化Flask-Migrate

python 复制代码
from flask_migrate import Migrate

migrate = Migrate(app, db)

示例代码:创建和应用迁移

bash 复制代码
flask db init  # 初始化迁移目录
flask db migrate -m "Initial migration."  # 生成迁移脚本
flask db upgrade  # 应用迁移到数据库
6.5 操作数据库

使用SQLAlchemy ORM,您可以轻松地添加、查询、更新和删除数据库记录。

示例代码:添加新用户

python 复制代码
new_user = User(username='JohnDoe', email='john@example.com')
db.session.add(new_user)
db.session.commit()

示例代码:查询用户

python 复制代码
user = User.query.filter_by(username='JohnDoe').first()
6.6 总结

本章介绍了如何在Flask应用中集成数据库,包括选择数据库、配置SQLAlchemy、创建数据模型、以及使用Flask-Migrate进行数据库迁移和版本控制。

相关推荐
阿里嘎多哈基米4 分钟前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
IMER SIMPLE10 分钟前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
抠脚学代码13 分钟前
Ubuntu Qt x64平台搭建 arm64 编译套件
数据库·qt·ubuntu
CodeCraft Studio26 分钟前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
jakeswang37 分钟前
全解MySQL之死锁问题分析、事务隔离与锁机制的底层原理剖析
数据库·mysql
Heliotrope_Sun1 小时前
Redis
数据库·redis·缓存
一成码农1 小时前
MySQL问题7
数据库·mysql
吃饭最爱1 小时前
JUnit技术的核心和用法
数据库·oracle·sqlserver
专注API从业者1 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
java1234_小锋1 小时前
[免费]基于Python的协同过滤电影推荐系统(Django+Vue+sqlite+爬虫)【论文+源码+SQL脚本】
python·django·电影推荐系统·协同过滤