我有一个Django API,它正部署在PythonAnywhere中. 为此,我不能让settings.py中的默认选项作为True:

DEBUG=True

然而,该应用程序也有一个使用drf-yasg库的Swagger页面.要使其在本地工作,我必须将调试选项设置为真.

然而,维护它是很麻烦的,我经常错误地将它作为True提交给存储库.

有没有什么办法我可以管理这个选项,以便每当我在本地运行时,它会自动设置为True,但默认情况下将其保留为False

DEBUG=False

推荐答案

为此,我使用了python-decouple个套餐.要区分生产和开发环境,您可以创建一个.env文件,其中包含所有与生产相关的变量.在settings.py中,当检索配置参数时,将每个default选项保留为开发中使用的选项.因此,当.env文件不存在时,将设置默认值.

from decouple import config

DEBUG = config('YOUR_ENV_VAR_DEBUG', default=True, cast=bool)

有关更多真实世界的用例,请参考documentation.

Django相关问答推荐

Django的update_or_create失败,尽管指定了kwargs'

Django相关对象引用模板

RDBMS多对多关系Django

Django OneToOneFieldto抽象对象

Django:我的上下文变量不能用于重复的for循环

未强制执行枚举值

错误``Forbidden (403) CSRF 验证失败.请求中止.``` 当try 登录管理员时

无法迁移,模型中的外键导致了问题

Django:创建一个动态侧边栏模板并在其他模板中使用它

在 Django 模板中呈现标签名称而不是整数字段

为什么我的搜索功能返回错误相关字段查找无效:​​类别

"" 需要有字段 "id" 的值才能使用这种多对多关系

在 GoDaddy 上安装 django 站点

如何在 django-rest-framework 中为 API 使用 TokenAuthentication

如何按名称设置 django 模型字段?

Django:创建索引:非唯一,多列

django 管理员操作而不 Select 对象

在 Django 中使用 LiveServerTestCase 时使用代码登录

Django - 保存新对象时如何获取 self.id?

Django 测试客户端方法覆盖标头