将 Flask 应用程序部署到 Windows IIS 时 config.py 和 web.config 文件之间的区别

Difference between config.py and web.config file when deploying Flask app to Windows IIS

上下文信息

我正在工作中开发一个 flask web 应用程序。由于我公司现有的网络基础设施,我必须通过 IIS 在 Windows 服务器上部署 flask 应用程序。

对于开发过程,我在本地机器上使用普通的 Flask Werkzeug 开发服务器。在开发过程中,创建了一个 config.py 文件(请参见下文)。

现在我正在将应用程序部署到 IIS 上的生产环境中。在那里,IIS 服务器需要一个 web.config 文件来解释我的应用程序的 python 代码(我通过 wfastcgi python 模块使用 FastCGI)。

问题

我的 IIS 生产服务器应用程序目录中现在有两个文件,我不确定它们如何交互或相关:config.pyweb.config

有人可以向我解释这些文件的区别吗?config.py 在 IIS 生产环境中是否仍然与我的应用程序相关?


代码

config.py

import os 
from dotenv import load_dotenv

basedir = os.path.abspath(os.path.dirname(__name__))
load_dotenv(os.path.join(basedir, '.env'))

# Create the super class
class Config(object):
   SECRET_KEY = os.environ.get('SECRET_KEY')
   SQLALCHEMY_COMMIT_ON_TEARDOWN = True
   SQLALCHEMY_TRACK_MODIFICATIONS = False

# Create the development config
class DevelopmentConfig(Config):
   DEBUG = True
   

# Create the testing config
class TestingConfig(Config):
   DEBUG = False
   TESTING = True


# create the production config
class ProductionConfig(Config):
   DEBUG = False
   TESTING = False

web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="FastCGI Handler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="f:\apps\venv\scripts\python.exe|f:\apps\venv\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

一个 config.py 文件包含计算机程序的参数和初始设置。导入一个config.py文件可以让config.py文件中的变量和函数在当前程序中使用。这是主要配置文件,不应修改。可以作为配置设置的参考。

web.config 是 IIS 读取的文件,用于配置 IIS 托管的应用程序,web.config 用于 ASP.NET Web Projects/Web 服务。 web.config 默认情况下有几个 Web 应用程序需要的配置。它也称为应用程序级配置文件并从 machine.config 文件继承设置。