📅  最后修改于: 2023-12-03 15:36:27.937000             🧑  作者: Mango
Google Cloud SQL 是谷歌提供的一种云数据库服务,可以与 Flask 框架结合使用。在本文中,我们将介绍如何使用 Flask 设置 Google Cloud SQL,以提供一个动态的 Web 应用程序。
首先,我们需要进入 Google Cloud Console,在“SQL”部分中创建一个新的数据库实例。你可以选择一个可用区域,配置虚拟机规格,设置数据库密码等等。
为了连接到新创建的数据库实例,我们需要安装 Google 官方 Python 包 google-cloud-sqlalchemy。可以通过 pip 命令进行安装:
pip install google-cloud-sqlalchemy
安装完成后,我们需要在 Flask 代码中添加以下配置:
import os
from flask import Flask
from google.cloud import sqlalchemy
app = Flask(__name__)
# 添加连接数据库的配置
DATABASE = {
'drivername': 'mysql+pymysql',
'username': 'root',
'password': os.environ.get('MYSQL_PASSWORD'),
'host': os.environ.get('MYSQL_HOST'),
'port': 3306,
'database': 'mydatabase'
}
# 创建数据库引擎
engine = sqlalchemy.create_engine(sqlalchemy.engine.url.URL(**DATABASE))
# 连接数据库
connection = engine.connect()
@app.route('/')
def hello():
return 'Hello World!'
其中,MYSQL_PASSWORD
和 MYSQL_HOST
等参数需要根据数据库实例的具体配置进行设置。
创建数据库表格的方式有很多种,这里我们介绍其中一种简单的方式。我们可以使用 Flask 的 SQLAlchemy 框架来定义数据库表格结构,然后使用 create_all()
函数创建相应的表格。以下是代码示例:
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 创建 SQLAlchemy 对象
db = SQLAlchemy(app)
# 定义数据模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
# 创建表格
db.create_all()
@app.route('/')
def hello():
return 'Hello World!'
可以看到,我们首先通过 SQLalchemy()
函数创建了一个 SQLAlchemy 对象,然后定义了一个 User 模型类,并通过 db.create_all()
函数创建了一个名为 user
的表格。
当我们成功地建立了数据库表格后,我们需要使用数据库中的实际数据。以下是代码示例:
from flask import render_template
@app.route('/')
def show_users():
users = User.query.all()
return render_template('users.html', users=users)
这里我们定义了一个名为 show_users()
的函数,通过 User.query.all()
命令查询了所有的用户,并将查询结果传递到 users.html
模板中。
至此,我们已经成功地将数据库和 Flask 框架结合使用,实现了一个简单的 Web 应用程序。我们可以通过其他 Flask 扩展库,如 Flask-WTF 等,进一步增强我们的应用程序。