Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 1.64 KB

1.配置数据库连接.md

File metadata and controls

54 lines (42 loc) · 1.64 KB

配置数据库连接

1.常用配置参数

  • SQLALCHEMY_DATABASE_URI: str

    • 数据库连接地址:dialect[+driver]://user:password@host/dbname[?key=value..]
  • SQLALCHEMY_COMMIT_ON_TEARDOWN: bool

    • 每次请求结束后自动提交
  • SQLALCHEMY_TRACK_MODIFICATIONS: Optional[bool] = None

    • 如果设置为True,Flask-SQLAlchemy 将跟踪对象的修改并发出信号
    • 建议设置为 False
  • SQLALCHEMY_POOL_SIZE: int

    • 维护的session数
  • SQLALCHEMY_MAX_OVERFLOW: int

    • 可溢出的session数
  • SQLALCHEMY_POOL_RECYCLE: int

    • 过期时间
  • SQLALCHEMY_ENGINE_OPTIONS: Dict

    • isolation_level: str
      • 事务的隔离级别,推荐RC READ COMMITTED
  • 示例

# testProj/config/production.py

# coding: utf-8

import os

from .base import *
from libs.config import Config

CONFIG_INFO = Config(os.path.join(BASE_DIR, '.env')).format()
DB_CONFIG = CONFIG_INFO['db']


class ProConfig(BaseConfig):

    DEBUG = False

    # 数据库配置
    SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{DB_CONFIG['user']}:{DB_CONFIG['password']}" \
                              f"@{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['database']}" \
                              f"?charset={DB_CONFIG['charset']}"
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_POOL_SIZE = 20  # 10个连接
    SQLALCHEMY_MAX_OVERFLOW = 5  # 可以溢出的连接数
    SQLALCHEMY_POOL_RECYCLE = 60 * 60 * 2  # 2小时
    SQLALCHEMY_ENGINE_OPTIONS = {
        'isolation_level': 'READ COMMITTED'  # RC隔离级别
    }