欢迎访问宙启技术站
智能推送

使用PythonFlask和SQLAlchemy构建ORM模型

发布时间:2024-01-14 10:19:25

Python Flask是一个轻量级的Web框架,而SQLAlchemy是一个流行的Python库,用于操作关系型数据库。在Flask中使用SQLAlchemy构建ORM(对象关系映射)模型可以简化数据库操作,提高开发效率。

为了演示如何使用Python Flask和SQLAlchemy构建ORM模型,我将创建一个简单的图书管理系统。首先,你需要安装Flask和SQLAlchemy库。可以通过以下命令来安装它们:

pip install flask
pip install sqlalchemy

完成安装后,我们首先需要在Flask应用程序中配置数据库连接。在app.py文件中,我们可以添加如下代码来配置SQLite数据库连接:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///books.db'
db = SQLAlchemy(app)

# 定义Book模型
class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), nullable=False)
    author = db.Column(db.String(80), nullable=False)

    def __repr__(self):
        return '<Book %r>' % self.title

上述代码创建了一个Flask应用程序实例,并配置了SQLite数据库连接URI。然后,我们使用SQLAlchemy的db对象创建了一个Book模型。Book模型继承自db.Model类,并定义了id、title和author等属性。在模型中还定义了__repr__方法,用于返回模型的字符串表示。

接下来,我们需要在应用程序中创建数据库表。在终端中运行以下命令来创建数据库表:

python
from app import db
db.create_all()

现在,我们可以编写一些示例代码来演示如何使用ORM模型。在app.py文件中,我们可以添加以下路由函数:

@app.route('/')
def index():
    # 查询所有图书
    books = Book.query.all()
    return 'Total books: {0}'.format(len(books))


@app.route('/add')
def add_book():
    # 添加一本新书
    book = Book(title='Python Flask', author='John Doe')
    db.session.add(book)
    db.session.commit()
    return 'Book added'


@app.route('/update')
def update_book():
    # 更新一本书的信息
    book = Book.query.filter_by(title='Python Flask').first()
    book.author = 'Jane Smith'
    db.session.commit()
    return 'Book updated'


@app.route('/delete')
def delete_book():
    # 删除一本书
    book = Book.query.filter_by(title='Python Flask').first()
    db.session.delete(book)
    db.session.commit()
    return 'Book deleted'

上述代码定义了四个路由函数:index、add_book、update_book和delete_book。index函数查询数据库中的所有图书并返回总数。add_book函数创建一本新书并添加到数据库中。update_book函数通过标题查询一本书并更新作者信息。delete_book函数通过标题查询一本书并删除它。

最后,我们需要在应用程序中运行Flask服务器。在终端中运行以下命令:

export FLASK_APP=app.py
flask run

现在,你可以在浏览器中访问http://localhost:5000来测试图书管理系统的功能了。通过访问不同的路由,你可以添加、更新和删除图书,并查看图书总数。

总之,使用Python Flask和SQLAlchemy构建ORM模型可以简化数据库操作,并提高开发效率。通过定义模型类和路由函数,我们可以轻松地进行数据库查询、插入、更新和删除操作。这使得使用Python开发Web应用程序变得更加简单和高效。