我希望我的Flask应用程序在本地运行时和在线托管时有不同的行为。 我该如何从Flask应用程序中检测它是在本地主机上还是部署时?
以下是示例代码:
from __future__ import absolute_imports
from flask import Flask
import .config # This is our default configuration
app = Flask(__name__)
# First, set the default configuration
app.config.from_object(config)
# Then, load the environment-specific information
app.config.from_envvar("MYAPP_CONFIG_PATH")
# Setup routes and then ...
if __name__ == "__main__":
app.run()
参见:Flask.config
的文档
flask.request.url_root
与你想匹配的已知URL值进行比较。from flask import Flask, request
def is_production():
""" Determines if app is running on the production server or not.
Get Current URI.
Extract root location.
Compare root location against developer server value 127.0.0.1:5000.
:return: (bool) True if code is running on the production server, and False otherwise.
"""
root_url = request.url_root
developer_url = 'http://127.0.0.1:5000/'
return root_url != developer_url
import subprocess, shlex
def get_running_flask_processes(port):
processes = []
cmd = f"lsof -ti:{port}"
result = subprocess.run(shlex.split(cmd), capture_output=True, text=True)
if result.stdout:
if "\n" in result.stdout:
processes += result.stdout.split("\n")
processes = [int(x) for x in processes if x != '']
else:
processes += [int(result.stdout)]
return processes
http://localhost...
访问网站时,希望有不同的行为? - undefined