将 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.py
和 web.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 文件继承设置。
上下文信息
我正在工作中开发一个 flask web 应用程序。由于我公司现有的网络基础设施,我必须通过 IIS 在 Windows 服务器上部署 flask 应用程序。
对于开发过程,我在本地机器上使用普通的 Flask Werkzeug 开发服务器。在开发过程中,创建了一个 config.py 文件(请参见下文)。
现在我正在将应用程序部署到 IIS 上的生产环境中。在那里,IIS 服务器需要一个 web.config 文件来解释我的应用程序的 python 代码(我通过 wfastcgi python 模块使用 FastCGI)。
问题
我的 IIS 生产服务器应用程序目录中现在有两个文件,我不确定它们如何交互或相关:config.py
和 web.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 文件继承设置。