一、历史回顾
根据上一篇:配置文件编写,已经把各种配置根据开发环境做了区分,再config.py中,我们可以分别处理测试、生产的相关配置,这节主要说一下数据库的链接和使用
二、配置数据库连接
Flask定义和链接数据库文档;
Flask的SQLAlchemy;
使用SQLAlchemy链接数据库之前,先安装pymysql(pip install pymysql)。
我们先使用最简单的方式来运行代码,新增test.py文件,源码如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from typing import List
from flask import jsonify
app = Flask(__name__)
app.config[
'SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:3310/{DATABASE}?charset=utf8mb4'
db = SQLAlchemy()
db.init_app(app)
@app.route('/list')
def resource_list():
return jsonify({
'code': 0,
'msg': 'success',
})
app.run()
运行结果如下:
项目运行成功,那么我们把这个数据库的相关配置写进config.py,就成了,config.py源码如下:
# import os
# 基础配置,使用继承的方式
class BaseConfig:
TESTING = False
# MySQL所在主机名,默认127.0.0.1
HOSTNAME = "127.0.0.1"
# MySQL监听的端口号,默认3306
PORT = 3306
# 连接MySQL的用户名,自己设置
USERNAME = "root"
# 连接MySQL的密码,自己设置
PASSWORD = "root"
# MySQL上创建的数据库名称
DATABASE = "database_learn"
# 通过修改以下代码来操作不同的SQL比写原生SQL简单很多 --》通过ORM可以实现从底层更改使用的SQL
# app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
class DevelopmentConfig(BaseConfig):
# 开启debug
DEBUG = True
# mysql配置
HOSTNAME = ""
USERNAME = ""
PASSWORD = ""
DATABASE = ""
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:3310/{DATABASE}?charset=utf8mb4"
class ProductionConfig(BaseConfig):
DEBUG = False
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}"
config = {
"development": DevelopmentConfig,
"production": ProductionConfig,
}
然后运行就可以喽。。。。