Tl;DR
Hard coding config values and credentials is convenient but makes your code less secure and less portable. Use environment variables to make ...
For further actions, you may consider blocking this person and/or reporting abuse
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG = True or DEBUG = False in .env file are always evaluated as True
Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.
DEBUG=''
.thanks for this
Don't ask my why the author did not accept my PR: github.com/theskumar/python-dotenv...
Converting types
The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.
Example:
This is really helpful, thanks. Agreed—it seems strange that your PR was rejected, given that variables with False values get (confusingly) cast to True.
Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json
import json
DEBUG = json.loads(os.getenv("DEBUG"))
if DEBUG:
print("Debugging")
Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.
Sure! After time spent to True this, False that... and your app lives of it’s own life
Thanks James! I'm starting using this :) I'm moving from PyCharm to VSCode, and I notice use
.env
files in VSCode is more easy using"envFile"
parameter inlaunch.json
without any plugin and pip pacakge extra.I used to do this. Now I just have a mysecrets.py file (which is not in the repo obviously) and just type "from mysecrets import *" at the top of settings.py. The problem I had with .env is with debug mode. Say someone on your team accidentally deploys in prod with DEBUG=True. If an end-user hits a python exception for some reason, the environment variables all appear on the Django debug screen. In contrast, regular python variables in settings.py are obfuscated by Django. Have you noticed this? Does it concern you?
This produces errors when you push your app to heroku for hosting
Were you able to fix this?
Awesome, thanks!