Python Flask 微服务项目教程
1. 项目的目录结构及介绍
python-flask-microservice/
├── config/
│ ├── __init__.py
│ ├── default.py
│ ├── development.py
│ ├── production.py
│ └── testing.py
├── services/
│ ├── __init__.py
│ ├── service1/
│ │ ├── __init__.py
│ │ ├── app.py
│ │ └── views.py
│ └── service2/
│ ├── __init__.py
│ ├── app.py
│ └── views.py
├── tests/
│ ├── __init__.py
│ └── test_service1.py
├── .gitignore
├── README.md
├── requirements.txt
└── run.py
目录结构介绍
config/
: 包含项目的配置文件,如默认配置、开发环境配置、生产环境配置和测试环境配置。services/
: 包含各个微服务的代码,每个微服务有自己的目录和文件。tests/
: 包含项目的测试代码。.gitignore
: Git 忽略文件列表。README.md
: 项目说明文档。requirements.txt
: 项目依赖包列表。run.py
: 项目启动文件。
2. 项目的启动文件介绍
run.py
from services.service1.app import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
启动文件介绍
run.py
是项目的启动文件,负责创建应用实例并运行应用。create_app
函数在services/service1/app.py
中定义,用于创建 Flask 应用实例。
3. 项目的配置文件介绍
config/
目录
config/
├── __init__.py
├── default.py
├── development.py
├── production.py
└── testing.py
配置文件介绍
default.py
: 默认配置文件,包含所有环境通用的配置。development.py
: 开发环境配置文件,包含开发环境特有的配置。production.py
: 生产环境配置文件,包含生产环境特有的配置。testing.py
: 测试环境配置文件,包含测试环境特有的配置。
配置文件示例
default.py
import os
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard_to_guess_string'
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or 'sqlite:///dev.db'
class ProductionConfig(Config):
DEBUG = False
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///prod.db'
class TestingConfig(Config):
TESTING = True
SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or 'sqlite:///test.db'
config = {
'development': DevelopmentConfig,
'production': ProductionConfig,
'testing': TestingConfig,
'default': DevelopmentConfig
}
配置文件使用
在 services/service1/app.py
中,可以通过以下方式加载配置:
from flask import Flask
from config import config
def create_app(config_name='default'):
app = Flask(__name__)
app.config.from_object(config[config_name])
return app
通过这种方式,可以根据不同的环境变量加载不同的配置文件。