config 源代码

# -*- coding:utf-8 -*-
import os
basedir = os.path.abspath(os.path.dirname(__file__))

[文档]class Config: SECRET_KEY = os.environ.get('SECRET_KEY') or 'Stay away from me' SQLALCHEMY_COMMIT_ON_TEARDOWN = True MAIL_SERVER = 'smtp.163.com' MAIL_PORT = '994' MAIL_USE_TLS = False MAIL_USE_SSL = True MAIL_USERNAME = os.environ.get('MAIL_USERNAME') MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') FLASKY_MAIL_SUBJECT_PREFIX = '[影碟租借管理系统]' FLASKY_MAIL_SENDER = '影碟租借管理系统' FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN') SQLALCHEMY_TRACK_MODIFICATIONS = True FLASKY_POSTS_PER_PAGE = 10 FLASKY_FOLLOWERS_PER_PAGE = 10 FLASKY_COMMENTS_PER_PAGE = 10 FLASKY_POSTS_PER_PAGE = 10 SQLALCHEMY_RECORD_QUERIES = True FLASKY_DB_QUERY_TIMEOUT = 0.5 FLASKY_SLOW_DB_QUERY_TIME = 0.5 MAX_BORROWED_NUMBER = 7 @staticmethod
[文档] def init_app(app): pass
[文档]class DevelopmentConfig(Config): DEBUG = True SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or \ 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
[文档]class TestingConfig(Config): TESTING = True SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \ 'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')
[文档]class ProductionConfig(Config): SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \ 'sqlite:///' + os.path.join(basedir, 'data.sqlite') @classmethod
[文档] def init_app(cls, app): Config.init_app(app) # email errors to the administrators import logging from logging.handlers import SMTPHandler credentials = None secure = None if getattr(cls, 'MAIL_USERNAME', None) is not None: credentials = (cls.MAIL_USERNAME, cls.MAIL_PASSWORD) if getattr(cls, 'MAIL_USE_TLS', None): secure = () mail_handler = SMTPHandler( mailhost=(cls.MAIL_SERVER, cls.MAIL_PORT), fromaddr=cls.FLASKY_MAIL_SENDER, toaddrs=[cls.FLASKY_ADMIN], subject=cls.FLASKY_MAIL_SUBJECT_PREFIX + ' Application Error', credentials=credentials, secure=secure) mail_handler.setLevel(logging.ERROR) app.logger.addHandler(mail_handler)
config = { 'development': DevelopmentConfig, 'testing': TestingConfig, 'production': ProductionConfig, 'default': DevelopmentConfig }