在今天的博客中,我们将介绍如何使用Flask和SQLAlchemy来构建Python Web应用。Flask是一个轻量级的Web框架,而SQLAlchemy是一个强大的Python ORM库。将它们结合使用可以方便地构建功能强大的Web应用程序。
准备工作
在开始之前,请确保您的系统上已经安装了Python和pip。然后,我们可以使用以下命令来安装Flask和SQLAlchemy:
$ pip install Flask
$ pip install SQLAlchemy
创建一个基本的Flask应用
首先,创建一个名为app.py
的新文件,并添加以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
上述代码创建了一个基本的Flask应用,在浏览器中访问http://localhost:5000
时,会显示"Hello, World!"。
配置数据库连接
现在,我们将添加数据库支持。首先,我们需要创建一个SQLite数据库文件。在app.py
的同级目录中,使用以下命令创建一个database.db
文件:
$ touch database.db
然后,我们需要配置SQLAlchemy连接到该数据库文件。在app.py
中添加以下代码:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' # 配置数据库连接
db = SQLAlchemy(app)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
上述代码创建了一个SQLAlchemy对象,并将其连接到SQLite数据库文件。
创建模型
接下来,我们将定义一个模型来表示我们的数据。在app.py
中添加以下代码:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
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)
def __repr__(self):
return f'<User {self.username}>'
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
上述代码定义了一个名为"User"的模型,它有一个主键"id"和一个"username"属性。我们还定义了__repr__
方法,用于更友好地打印User对象。
创建数据库表
现在我们需要创建数据库表来存储我们的模型。为此,我们需要使用Flask的命令行工具。在终端中执行以下命令:
$ flask shell
然后在交互式Python环境中,输入以下命令:
>>> from app import db
>>> db.create_all()
这将创建一个名为"users"的数据库表,用于存储User模型的数据。
使用模型进行数据库操作
我们已经定义了模型并创建了数据库表。现在,让我们使用模型来执行一些数据库操作。在app.py
的index
视图中添加以下代码:
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
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)
def __repr__(self):
return f'<User {self.username}>'
@app.route('/')
def index():
users = User.query.all() # 查询所有用户
return render_template('index.html', users=users)
if __name__ == '__main__':
app.run(debug=True)
上述代码使用User.query.all()
查询数据库中的所有用户,并将其传递给名为"index.html"的模板进行渲染。
创建模板
现在,我们需要创建一个名为"index.html"的模板,用于显示数据库中的用户列表。在项目根目录下创建一个名为"templates"的文件夹,并在其中创建名为"index.html"的文件。添加以下代码到"index.html"中:
<!DOCTYPE html>
<html>
<head>
<title>Users</title>
</head>
<body>
<h1>Users</h1>
<ul>
{% for user in users %}
<li>{{ user.username }}</li>
{% endfor %}
</ul>
</body>
</html>
上述代码定义了一个简单的HTML页面,通过使用模板语言显示数据库中的用户列表。
运行应用
现在,我们已经完成了Flask应用的所有代码和模板。让我们运行应用并查看结果。在终端中执行以下命令:
$ python app.py
然后在浏览器中访问http://localhost:5000
,您将看到一个包含数据库中所有用户的列表。
通过使用Flask和SQLAlchemy,我们可以方便地构建功能强大的Python Web应用程序。在本博客中,我们介绍了如何设置Flask应用、配置数据库连接、创建模型、创建数据库表、执行数据库操作和创建模板。希望这篇博客对您有所帮助,并能帮助您构建出色的Web应用程序。
本文来自极简博客,作者:后端思维,转载请注明原文链接:使用Flask和SQLAlchemy构建Python Web应用