使用Flask和SQLAlchemy构建一个简单的图书管理应用
发布时间:2023-12-18 05:01:15
Flask是一个轻量级的Python Web框架,而SQLAlchemy是一个强大的Python SQL工具包。使用Flask和SQLAlchemy可以很方便地构建一个简单的图书管理应用。
首先,我们需要安装Flask和SQLAlchemy。通过以下命令可以安装它们:
pip install flask pip install sqlalchemy
接下来,我们创建一个Flask应用并配置数据库连接,我们使用SQLite作为简单的演示。创建一个名为app.py的文件,并添加以下代码:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///books.db'
db = SQLAlchemy(app)
class Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
author = db.Column(db.String(100), nullable=False)
def __repr__(self):
return '<Book %r>' % self.title
@app.route('/')
def index():
books = Book.query.all()
return render_template('index.html', books=books)
@app.route('/add', methods=['POST'])
def add():
title = request.form['title']
author = request.form['author']
book = Book(title=title, author=author)
db.session.add(book)
db.session.commit()
return redirect(url_for('index'))
@app.route('/delete/<int:id>')
def delete(id):
book = Book.query.get(id)
db.session.delete(book)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
在上述代码中,我们定义了一个Book模型类,包含id、title和author三个字段。然后在app.py中定义路由/和/add用于展示图书列表和添加图书,路由/delete/<int:id>用于删除图书。
接下来,我们创建一个名为index.html的模板文件,用于展示图书列表和添加图书的表单。创建一个名为templates的文件夹,在其中创建index.html文件,并添加以下代码:
<!DOCTYPE html>
<html>
<head>
<title>图书管理</title>
</head>
<body>
<h1>图书列表</h1>
<ul>
{% for book in books %}
<li>{{ book.title }} - {{ book.author }} <a href="{{ url_for('delete', id=book.id) }}">删除</a></li>
{% endfor %}
</ul>
<h2>添加图书</h2>
<form action="{{ url_for('add') }}" method="post">
<label>标题</label>
<input type="text" name="title" required>
<label>作者</label>
<input type="text" name="author" required>
<input type="submit" value="添加">
</form>
</body>
</html>
在模板中,我们通过模板语言展示了图书列表和添加图书的表单,并通过url_for函数生成删除图书的链接。
现在,我们可以运行应用了。在终端中,执行以下命令启动应用:
python app.py
然后,在浏览器中访问http://localhost:5000,就可以看到图书管理应用了。您可以添加、删除和查看图书列表。
以上就是使用Flask和SQLAlchemy构建一个简单的图书管理应用的示例。您可以根据自己的需求进行扩展和优化。
