在Django中,如果您在运行期间更改了settings.py文件中的APP_URL设置,可能会发现在访问应用程序时没有立即反映更改。这是因为django.conf.settings模块是一个在Django启动时导入并缓存的单例对象,因此更改setting后模块将不会重新加载。
解决这个问题的一种方法是使用django.utils.functional.lazy()函数并在需要使用该值时强制重新计算它。例如:
from django.conf import settings from django.utils.functional import lazy
def get_app_url(): return settings.APP_URL
APP_URL = lazy(get_app_url, str)()
现在,当您访问APP_URL时,它将动态计算而不是从缓存的值中读取。