Overview
All 4 of 4 tested scraper methods completed successfully for this URL.
The best-performing option was curl-cffi:0.14 with datacenter proxy routing. It returned HTTP 200. Total runtime was 0.57s. Estimated request cost was $0.000027.
Tested Methods
| Scraper | Proxy | Response | Time | Request Cost | |
|---|---|---|---|---|---|
|
apiritif/curl-cffi:0.14
|
datacenter |
200 | 0.57s |
$0.000027 $0.027/1k |
|
|
apiritif/playwright:1.58
|
datacenter |
200 | 3.83s |
$0.000032 $0.032/1k |
|
|
apiritif/pydoll:2.20
|
datacenter |
200 | 4.65s |
$0.000033 $0.033/1k |
|
|
apiritif/scrapling-stealthyfetcher:0.4
|
datacenter |
200 | 4.12s |
$0.000034 $0.034/1k |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>
<meta name="description" content="How to use environment variables to keep secure keys out of your code.">
<meta name="keywords" content="software, coding, development, engineering, inclusive, community">
<meta property="og:type" content="article" />
<meta property="og:title" content="Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables" />
<meta property="og:description" content="How to use environment variables to keep secure keys out of your code." />
<meta property="og:site_name" content="DEV Community" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@thepracticaldev">
<meta name="twitter:creator" content="@">
<meta name="twitter:title" content="Django Cheat Sheet: Keep Credentials Secure with Environment Variables">
<meta name="twitter:description" content="How to use environment variables to keep secure keys out of your code.">
<link rel="canonical" href="https://dev.to/nicolaerario/comment/fe1e" />
<meta property="og:url" content="https://dev.to/nicolaerario/comment/fe1e" />
<meta property="og:title" content="How do you manage Boolean with python-dotenv? I... — DEV Community" />
<meta name="twitter:title" content="How do you manage Boolean with python-dotenv? I... — DEV Community">
<meta property="og:image" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg">
<meta name="twitter:image:src" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg">
<meta name="last-updated" content="2026-03-20 10:09:32 UTC">
<meta name="user-signed-in" content="false">
<meta name="head-cached-at" content="1774001372">
<meta name="environment" content="production">
<link rel="stylesheet" href="https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css" media="all" id="main-minimal-stylesheet" />
<link rel="stylesheet" href="https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css" media="all" id="main-views-stylesheet" />
<link rel="stylesheet" href="https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css" media="all" id="main-crayons-stylesheet" />
<script src="https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js" defer="defer"></script>
<meta name="search-script" content="https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<link rel="icon" type="image/x-icon" href="https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" />
<link rel="apple-touch-icon" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="167x167" href="https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link href="https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" rel="icon" sizes="192x192" />
<link href="https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" rel="icon" sizes="128x128" />
<meta name="apple-mobile-web-app-title" content="dev.to">
<meta name="application-name" content="dev.to">
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
<link rel="search" href="https://dev.to/open-search.xml" type="application/opensearchdescription+xml" title="DEV Community" />
<meta property="forem:name" content="DEV Community" />
<meta property="forem:logo" content="https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" />
<meta property="forem:domain" content="dev.to" />
</head>
<body
class="sans-serif-article-body default-header"
data-user-status="logged-out"
data-is-root-subforem="false"
data-subforem-id="1"
data-side-nav-visible="true"
data-community-name="DEV Community"
data-subscription-icon="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png"
data-locale="en"
data-honeybadger-key="hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr"
data-deployed-at="2026-03-19T20:49:25Z"
data-latest-commit-id="f47ae62cb2f25a529b1137abf7975d0e86324bf1"
data-ga-tracking="UA-71991109-1"
data-cookie-banner-user-context="logged_out_only"
data-cookie-banner-platform-context="off"
data-algolia-id="PRSOBFP46H"
data-algolia-search-key="9aa7d31610cba78851c9b1f63776a9dd"
data-algolia-display="true"
data-dynamic-url-component="bmar11"
data-ga4-tracking-id="G-TYEM8Y3JN3">
<script>
if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {
document.body.classList.add("hidden-shell");
}
if (new Date() > new Date("2026-02-04T09:00:00-05:00")) {
document.body.dataset.sideNavVisible = "false";
}
</script>
<link rel="stylesheet" href="https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css" media="all" id="secondary-minimal-stylesheet" />
<link rel="stylesheet" href="https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css" media="all" id="secondary-views-stylesheet" />
<link rel="stylesheet" href="https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css" media="all" id="secondary-crayons-stylesheet" />
<div id="body-styles">
<style>
:root {
--accent-brand-lighter-rgb: 80, 99, 301;
--accent-brand-rgb: 59, 73, 223;
--accent-brand-darker-rgb: 47, 58, 178;
}
</style>
</div>
<div id="audiocontent" data-podcast="">
</div>
<div class="navigation-progress" id="navigation-progress"></div>
<header id="topbar" class="crayons-header topbar print-hidden">
<span id="route-change-target" tabindex="-1"></span>
<a href="#main-content" class="skip-content-link">Skip to content</a>
<div class="crayons-header__container">
<span class="inline-block m:hidden ">
<button class="c-btn c-btn--icon-alone js-hamburger-trigger mx-2">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a9syj4ev9usghrj2cupgvw6aabjusk1t" class="crayons-icon"><title id="a9syj4ev9usghrj2cupgvw6aabjusk1t">Navigation menu</title>
<path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"></path>
</svg>
</button>
</span>
<a href="/" class="site-logo" aria-label="DEV Community Home" >
<img class="site-logo__img"
src="https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png"
style="aspect-ratio: 10 / 8"
alt="DEV Community">
</a>
<div class="crayons-header--search js-search-form" id="header-search">
<form accept-charset="UTF-8" method="get" action="/search" role="search">
<div class="crayons-fields crayons-fields--horizontal">
<div class="crayons-field flex-1 relative">
<input id="search-input" class="crayons-header--search-input crayons-textfield js-search-input" type="text" id="nav-search" name="q" placeholder="Find related posts..." autocomplete="off" />
<button type="submit" aria-label="Search" class="c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="asynyx1qxw5bjg880ehhj6dhqa8iosdc" aria-hidden="true" class="crayons-icon"><title id="asynyx1qxw5bjg880ehhj6dhqa8iosdc">Search</title>
<path d="M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z"></path>
</svg>
</button>
<a class="crayons-header--search-brand-indicator" href="https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral" target="_blank" rel="noopener noreferrer">
Powered by Algolia
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" width="24" height="24" viewBox="0 0 500 500.34" role="img" aria-labelledby="amiqq4aj0vjjtdk14z4cq9fy0cjejhz5" aria-hidden="true" class="crayons-icon"><title id="amiqq4aj0vjjtdk14z4cq9fy0cjejhz5">Search</title>
<defs></defs><path class="cls-1" d="M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z"></path>
</svg>
</a>
</div>
</div>
</form>
</div>
<div class="flex items-center h-100 ml-auto">
<div class="flex" id="authentication-top-nav-actions">
<span class="hidden m:block">
<a href="https://dev.to/enter?signup_subforem=1" class="c-link c-link--block mr-2 whitespace-nowrap ml-auto" data-no-instant>
Log in
</a>
</span>
<a href="https://dev.to/enter?signup_subforem=1&state=new-user" data-tracking-id="ca_top_nav" data-tracking-source="top_navbar" class="c-cta c-cta--branded whitespace-nowrap mr-2" data-no-instant>
Create account
</a>
</div>
</div>
</div>
</header>
<div class="hamburger">
<div class="hamburger__content">
<header class="hamburger__content__header">
<h2 class="fs-l fw-bold flex-1 break-word lh-tight">DEV Community</h2>
<button class="c-btn c-btn--icon-alone js-hamburger-trigger shrink-0" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7jqca81wlh4sunhyocm20yteah4aqdu" aria-hidden="true" class="crayons-icon c-btn__icon"><title id="a7jqca81wlh4sunhyocm20yteah4aqdu">Close</title><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z"></path></svg>
</button>
</header>
<div class="p-2 js-navigation-links-container" id="authentication-hamburger-actions">
</div>
</div>
<div class="hamburger__overlay js-hamburger-trigger"></div>
</div>
<div id="active-broadcast" class="broadcast-wrapper"></div>
<div id="page-content" class="wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760" data-current-page="comments-index">
<div id="page-content-inner" data-internal-nav="false">
<div id="page-route-change" class="screen-reader-only" aria-live="polite" aria-atomic="true"></div>
<script src="https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js" defer="defer"></script>
<div class="crayons-layout crayons-layout--limited-l gap-0" data-follow-button-container="true">
<span id="comment-article-indicator" data-article-id="172117"></span>
<div id="response-templates-data" class="hidden"></div>
<script src="https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js" defer="defer"></script>
<header class="p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0">
<h1 class="crayons-subtitle-1 mb-4">
<span class="fw-normal color-base-60">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>
</h1>
<div class="flex">
<a class="crayons-btn crayons-btn--outlined mr-2" href="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5">View post</a>
</div>
</header>
<section
class="crayons-card text-padding min-w-0 z-elevate"
id="comments-container"
data-commentable-id="172117"
data-commentable-type="Article"
data-commentable-author-id="102760"
data-commentable-co-author-ids="">
<div class="comments" id="comment-trees-container">
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-0
root
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="m:mx-1 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="am0hfruw7t7kbloxq90gm2u9chkb8rff" class="crayons-icon expanded"><title id="am0hfruw7t7kbloxq90gm2u9chkb8rff">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a60pbxfju0t7z027ra8mfcb5i35wrg6s" class="crayons-icon collapsed"><title id="a60pbxfju0t7z027ra8mfcb5i35wrg6s">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-273144"
class="
comment single-comment-node
root
comment--deep-0
"
data-comment-id="273144"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e"
data-comment-author-id="108601"
data-content-user-id="108601">
<a name="comment-fe1e" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/nicolaerario" class="shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" alt="nicolaerario profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/nicolaerario" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Nicola Erario
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-273144" aria-controls="comment-profile-preview-content-273144" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Nicola Erario profile details">
Nicola Erario
</button>
<div id="comment-profile-preview-content-273144" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #160533; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/nicolaerario" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Nicola Erario
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":108601,"name":"Nicola Erario"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Nicola Erario" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
Italy 🇮🇹
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-10-18T15:20:33Z" class="date">Oct 18, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-17T18:02:26Z" class=date-short-year>
Sep 17 '19
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-273144" aria-controls="comment-dropdown-273144" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="akgq3k15dqu49j2fytbaaltxd0kpvll8" class="crayons-icon pointer-events-none"><title id="akgq3k15dqu49j2fytbaaltxd0kpvll8">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-273144" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Nicola Erario's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="108601" data-action="settings-button" data-path="https://dev.to/nicolaerario/comment/fe1e/settings" aria-label="Go to Nicola Erario's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="108601">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="273144"
data-comment-url="https://dev.to/nicolaerario/comment/fe1e"
aria-label="Hide Nicola Erario's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/nicolaerario/comment/fe1e/mod" aria-label="Moderate Nicola Erario's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e" aria-label="Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>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</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-273144"
data-comment-id="273144"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3btu01xca2urgip0ej7lt2tshj6bs28" class="crayons-icon reaction-icon not-reacted"><title id="a3btu01xca2urgip0ej7lt2tshj6bs28">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a207ojso91c7liu3pwqmlfkjddpc2zco" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a207ojso91c7liu3pwqmlfkjddpc2zco">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">7</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="273144"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e"
data-tracking-name="comment_reply_button"
data-testid="reply-button-273144"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ahwvmev4joq47o1xnqyy2hn24vhmxtb4" class="crayons-icon reaction-icon not-reacted"><title id="ahwvmev4joq47o1xnqyy2hn24vhmxtb4">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="amu86j05tb5rto5dwbol17xfyeew32qd" class="crayons-icon expanded"><title id="amu86j05tb5rto5dwbol17xfyeew32qd">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="agcra525od8yaymvu4prqj30npmizg4n" class="crayons-icon collapsed"><title id="agcra525od8yaymvu4prqj30npmizg4n">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-273163"
class="
comment single-comment-node
child
comment--deep-1
"
data-comment-id="273163"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27"
data-comment-author-id="102760"
data-content-user-id="102760">
<a name="comment-fe27" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/jamestimmins" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg" alt="jamestimmins profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/jamestimmins" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
James Timmins
</span>
<span class="crayons-hover-tooltip inline-block spec-op-author -mr-2" data-tooltip="Author">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" class="crayons-icon">
<path d="M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z"></path>
</svg>
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-273163" aria-controls="comment-profile-preview-content-273163" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="James Timmins profile details">
James Timmins
</button>
<div id="comment-profile-preview-content-273163" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #002a9e; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/jamestimmins" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
James Timmins
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":102760,"name":"James Timmins"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: James Timmins" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-09-19T16:58:25Z" class="date">Sep 19, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
<span class="crayons-hover-tooltip inline-block spec-op-author -ml-2" data-tooltip="Author">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" class="crayons-icon">
<path d="M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z"></path>
</svg>
</span>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-17T18:29:14Z" class=date-short-year>
Sep 17 '19
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-273163" aria-controls="comment-dropdown-273163" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7gmp3o0mt8lu9t1omyan1swl0w3k035" class="crayons-icon pointer-events-none"><title id="a7gmp3o0mt8lu9t1omyan1swl0w3k035">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-273163" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to James Timmins's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="102760" data-action="settings-button" data-path="https://dev.to/jamestimmins/comment/fe27/settings" aria-label="Go to James Timmins's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="102760">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="273163"
data-comment-url="https://dev.to/jamestimmins/comment/fe27"
aria-label="Hide James Timmins's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/jamestimmins/comment/fe27/mod" aria-label="Moderate James Timmins's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/jamestimmins/comment/fe27" aria-label="Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>
<ol>
<li>Explicitly check for a string value. DEBUG = (os.getenv("DEBUG") == 'true')</li>
<li>Cast the val to a boolean DEBUG = bool(os.getenv("DEBUG")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>
<li>Use a more fully-featured package like <a href="https://github.com/joke2k/django-environ" rel="nofollow">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>
</ol>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-273163"
data-comment-id="273163"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="acgeuroqpao89v1gqag5tnag1lzjbopd" class="crayons-icon reaction-icon not-reacted"><title id="acgeuroqpao89v1gqag5tnag1lzjbopd">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="alpwyiy7hd86mwy98dvfifgf6axh83az" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="alpwyiy7hd86mwy98dvfifgf6axh83az">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">7</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="273163"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27"
data-tracking-name="comment_reply_button"
data-testid="reply-button-273163"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a37arejzrbksr1ryfcmai2lxbi18wfv9" class="crayons-icon reaction-icon not-reacted"><title id="a37arejzrbksr1ryfcmai2lxbi18wfv9">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ad4sa0cqju63trsnkxpdxa4f4dsoh3yn" class="crayons-icon expanded"><title id="ad4sa0cqju63trsnkxpdxa4f4dsoh3yn">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a3npi4krrvgdd27bjdm7498cnrep1iw0" class="crayons-icon collapsed"><title id="a3npi4krrvgdd27bjdm7498cnrep1iw0">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-359014"
class="
comment single-comment-node
child
comment--deep-2
"
data-comment-id="359014"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26"
data-comment-author-id="119873"
data-content-user-id="119873">
<a name="comment-kb26" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/bhupesh" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg" alt="bhupesh profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/bhupesh" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Bhupesh Varshney 👾
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-359014" aria-controls="comment-profile-preview-content-359014" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Bhupesh Varshney 👾 profile details">
Bhupesh Varshney 👾
</button>
<div id="comment-profile-preview-content-359014" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #0000bc; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/bhupesh" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Bhupesh Varshney 👾
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney 👾"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Bhupesh Varshney 👾" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Email
</div>
<div class="value">
<a href="mailto:"></a>
</div>
</li>
<li>
<div class="key">
Location
</div>
<div class="value">
New Delhi, India 🇮🇳
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-12-05T15:02:51Z" class="date">Dec 5, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2020-01-16T08:59:45Z" class=date-short-year>
Jan 16 '20
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-359014" aria-controls="comment-dropdown-359014" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="adnjyxwg4pvhdki3fg0akoitopv6pfg1" class="crayons-icon pointer-events-none"><title id="adnjyxwg4pvhdki3fg0akoitopv6pfg1">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-359014" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Bhupesh Varshney 👾's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="119873" data-action="settings-button" data-path="https://dev.to/bhupesh/comment/kb26/settings" aria-label="Go to Bhupesh Varshney 👾's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="119873">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="359014"
data-comment-url="https://dev.to/bhupesh/comment/kb26"
aria-label="Hide Bhupesh Varshney 👾's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/bhupesh/comment/kb26/mod" aria-label="Moderate Bhupesh Varshney 👾's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/bhupesh/comment/kb26" aria-label="Report Bhupesh Varshney 👾's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>thanks for this</p>
</body></html>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-359014"
data-comment-id="359014"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aaqd7b0m9ebsm08ygyp5ap1r776nxmue" class="crayons-icon reaction-icon not-reacted"><title id="aaqd7b0m9ebsm08ygyp5ap1r776nxmue">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ab3h6paxnc5enxpz5190u3riq9y1tkc4" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="ab3h6paxnc5enxpz5190u3riq9y1tkc4">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">1</span><span class="reactions-label hidden m:inline-block"> like</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="359014"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26"
data-tracking-name="comment_reply_button"
data-testid="reply-button-359014"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aceqw4gqgqb3jxi544mvbyzdyyv9psv4" class="crayons-icon reaction-icon not-reacted"><title id="aceqw4gqgqb3jxi544mvbyzdyyv9psv4">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7qkh3osze31p5tx1sa37ss9h410885k" class="crayons-icon expanded"><title id="a7qkh3osze31p5tx1sa37ss9h410885k">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ap76c9hto972y44k19vq49h1o4ipe73a" class="crayons-icon collapsed"><title id="ap76c9hto972y44k19vq49h1o4ipe73a">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-1107596"
class="
comment single-comment-node
child
comment--deep-1
"
data-comment-id="1107596"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm"
data-comment-author-id="1215611"
data-content-user-id="1215611">
<a name="comment-2b0bm" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/eftehassanpp" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png" alt="eftehassanpp profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/eftehassanpp" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
eftehassanpp
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1107596" aria-controls="comment-profile-preview-content-1107596" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="eftehassanpp profile details">
eftehassanpp
</button>
<div id="comment-profile-preview-content-1107596" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/eftehassanpp" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
eftehassanpp
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: eftehassanpp" aria-pressed="false">Follow</button>
</div>
<div class="color-base-70">
Full stack Web Developer
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2023-11-21T21:33:36Z" class="date">Nov 21, 2023</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2023-11-21T21:37:14Z" class=date-short-year>
Nov 21 '23
</time>
<span class="hidden m:inline-block">• Edited on <time datetime="2023-11-21T21:37:49Z" class="date-no-year">Nov 21</time></span>
<span class="m:hidden">• Edited</span>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1107596" aria-controls="comment-dropdown-1107596" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="anqysk9wz3k463ox4nph62xear0d3p4w" class="crayons-icon pointer-events-none"><title id="anqysk9wz3k463ox4nph62xear0d3p4w">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1107596" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to eftehassanpp's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="1215611" data-action="settings-button" data-path="https://dev.to/eftehassanpp/comment/2b0bm/settings" aria-label="Go to eftehassanpp's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="1215611">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="1107596"
data-comment-url="https://dev.to/eftehassanpp/comment/2b0bm"
aria-label="Hide eftehassanpp's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/eftehassanpp/comment/2b0bm/mod" aria-label="Moderate eftehassanpp's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm" aria-label="Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>
<strong>import json</strong><br>
<strong>DEBUG = json.loads(os.getenv("DEBUG"))<br>
if DEBUG:<br>
print("Debugging")</strong></p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-1107596"
data-comment-id="1107596"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ahjjbveswr6gcaqryfz4gyd2zgdwm4ze" class="crayons-icon reaction-icon not-reacted"><title id="ahjjbveswr6gcaqryfz4gyd2zgdwm4ze">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="abwchupp63so33156spria10r4l8m637" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="abwchupp63so33156spria10r4l8m637">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count"></span><span class="reactions-label hidden m:inline-block"></span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="1107596"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm"
data-tracking-name="comment_reply_button"
data-testid="reply-button-1107596"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3k1um56f8mzdqx2wg98m4ysf5jotnf5" class="crayons-icon reaction-icon not-reacted"><title id="a3k1um56f8mzdqx2wg98m4ysf5jotnf5">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a90ink3joapm9ddh1hq32wcrnt0gvn71" class="crayons-icon expanded"><title id="a90ink3joapm9ddh1hq32wcrnt0gvn71">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a2qx85oskkj1aic7osf7czppfjrosxg3" class="crayons-icon collapsed"><title id="a2qx85oskkj1aic7osf7czppfjrosxg3">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-274947"
class="
comment single-comment-node
child
comment--deep-1
"
data-comment-id="274947"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin"
data-comment-author-id="230500"
data-content-user-id="230500">
<a name="comment-fgin" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/anshsaini" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg" alt="anshsaini profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/anshsaini" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Ansh Saini
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-274947" aria-controls="comment-profile-preview-content-274947" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Ansh Saini profile details">
Ansh Saini
</button>
<div id="comment-profile-preview-content-274947" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #aaa1e0; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/anshsaini" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Ansh Saini
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":230500,"name":"Ansh Saini"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Ansh Saini" aria-pressed="false">Follow</button>
</div>
<div class="color-base-70">
Here to share my knowledge and learn new things, then share those as well.
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
New Delhi, India
</div>
</li>
<li>
<div class="key">
Education
</div>
<div class="value">
Bachelor's Degree in Computer Science
</div>
</li>
<li>
<div class="key">
Work
</div>
<div class="value">
Software Development Manager at Suraasa
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2019-09-16T11:14:42Z" class="date">Sep 16, 2019</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-19T18:08:31Z" class=date-short-year>
Sep 19 '19
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-274947" aria-controls="comment-dropdown-274947" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ajnrdgcw29lhl494uqrcvs642eq8pcfs" class="crayons-icon pointer-events-none"><title id="ajnrdgcw29lhl494uqrcvs642eq8pcfs">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-274947" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Ansh Saini's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="230500" data-action="settings-button" data-path="https://dev.to/anshsaini/comment/fgin/settings" aria-label="Go to Ansh Saini's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="230500">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="274947"
data-comment-url="https://dev.to/anshsaini/comment/fgin"
aria-label="Hide Ansh Saini's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/anshsaini/comment/fgin/mod" aria-label="Moderate Ansh Saini's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/anshsaini/comment/fgin" aria-label="Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>
</body></html>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-274947"
data-comment-id="274947"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ajn1movjhp9pjktahx5eie34nb5xkz92" class="crayons-icon reaction-icon not-reacted"><title id="ajn1movjhp9pjktahx5eie34nb5xkz92">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="afu01rt9305glx5lva9zn1eoy3gmcvv8" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="afu01rt9305glx5lva9zn1eoy3gmcvv8">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">2</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="274947"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin"
data-tracking-name="comment_reply_button"
data-testid="reply-button-274947"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="asi6g1r8jhe0pamnlr7xyglvrmazj0ta" class="crayons-icon reaction-icon not-reacted"><title id="asi6g1r8jhe0pamnlr7xyglvrmazj0ta">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a937zwu2zlm2i1loif46c4ce0g8yvgeb" class="crayons-icon expanded"><title id="a937zwu2zlm2i1loif46c4ce0g8yvgeb">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="atrycgt3bqhom1hcs1p3jm4bkt5ix4ra" class="crayons-icon collapsed"><title id="atrycgt3bqhom1hcs1p3jm4bkt5ix4ra">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-274987"
class="
comment single-comment-node
child
comment--deep-2
"
data-comment-id="274987"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb"
data-comment-author-id="108601"
data-content-user-id="108601">
<a name="comment-fgkb" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/nicolaerario" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" alt="nicolaerario profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/nicolaerario" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Nicola Erario
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-274987" aria-controls="comment-profile-preview-content-274987" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Nicola Erario profile details">
Nicola Erario
</button>
<div id="comment-profile-preview-content-274987" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #160533; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/nicolaerario" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Nicola Erario
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":108601,"name":"Nicola Erario"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Nicola Erario" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
Italy 🇮🇹
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-10-18T15:20:33Z" class="date">Oct 18, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-19T19:03:55Z" class=date-short-year>
Sep 19 '19
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-274987" aria-controls="comment-dropdown-274987" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ascp2zgq843l3hjiwbkueo1hyk2e9y4r" class="crayons-icon pointer-events-none"><title id="ascp2zgq843l3hjiwbkueo1hyk2e9y4r">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-274987" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Nicola Erario's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="108601" data-action="settings-button" data-path="https://dev.to/nicolaerario/comment/fgkb/settings" aria-label="Go to Nicola Erario's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="108601">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="274987"
data-comment-url="https://dev.to/nicolaerario/comment/fgkb"
aria-label="Hide Nicola Erario's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/nicolaerario/comment/fgkb/mod" aria-label="Moderate Nicola Erario's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb" aria-label="Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>Sure! After time spent to True this, False that... and your app lives of it’s own life </p>
</body></html>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-274987"
data-comment-id="274987"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a90c9akrxlwhzqlm6zbh2cl437mm8m4w" class="crayons-icon reaction-icon not-reacted"><title id="a90c9akrxlwhzqlm6zbh2cl437mm8m4w">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7u21cjq73ezwmhylwvn3maoxmjb805x" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a7u21cjq73ezwmhylwvn3maoxmjb805x">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">2</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="274987"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb"
data-tracking-name="comment_reply_button"
data-testid="reply-button-274987"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aqbnn7m38ze35s566cpzbxp8zc67xkyj" class="crayons-icon reaction-icon not-reacted"><title id="aqbnn7m38ze35s566cpzbxp8zc67xkyj">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ab4azljunvkclho839543mrgdhe8uanf" class="crayons-icon expanded"><title id="ab4azljunvkclho839543mrgdhe8uanf">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a18zu1yfzvcynrxsx4j1npp6npq3sdl7" class="crayons-icon collapsed"><title id="a18zu1yfzvcynrxsx4j1npp6npq3sdl7">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-712982"
class="
comment single-comment-node
child
comment--deep-1
"
data-comment-id="712982"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia"
data-comment-author-id="201500"
data-content-user-id="201500">
<a name="comment-1eeia" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/guettli" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg" alt="guettli profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/guettli" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Thomas Güttler
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-712982" aria-controls="comment-profile-preview-content-712982" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Thomas Güttler profile details">
Thomas Güttler
</button>
<div id="comment-profile-preview-content-712982" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #002a9e; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/guettli" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Thomas Güttler
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":201500,"name":"Thomas Güttler"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Thomas Güttler" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2019-07-25T13:33:46Z" class="date">Jul 25, 2019</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2021-05-13T19:37:19Z" class=date-short-year>
May 13 '21
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-712982" aria-controls="comment-dropdown-712982" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7alnuoz5ampzvua5h7ww511cbk31t1c" class="crayons-icon pointer-events-none"><title id="a7alnuoz5ampzvua5h7ww511cbk31t1c">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-712982" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Thomas Güttler's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="201500" data-action="settings-button" data-path="https://dev.to/guettli/comment/1eeia/settings" aria-label="Go to Thomas Güttler's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="201500">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="712982"
data-comment-url="https://dev.to/guettli/comment/1eeia"
aria-label="Hide Thomas Güttler's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/guettli/comment/1eeia/mod" aria-label="Moderate Thomas Güttler's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/guettli/comment/1eeia" aria-label="Report Thomas Güttler's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Don't ask my why the author did not accept my PR: <a href="https://github.com/theskumar/python-dotenv/pull/293/files" rel="nofollow noopener noreferrer" target="_blank">github.com/theskumar/python-dotenv...</a></p>
<h3>
<a name="converting-types" href="#converting-types">
</a>
Converting types
</h3>
<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>
<p>Example:<br>
</p>
<div class="highlight js-code-highlight">
<pre class="highlight python"><code><span class="kn">from</span> <span class="n">distutils.util</span> <span class="kn">import</span> <span class="n">strtobool</span>
<span class="n">DEBUG</span> <span class="o">=</span> <span class="nf">bool</span><span class="p">(</span><span class="nf">strtobool</span><span class="p">(</span><span class="n">os</span><span class="p">.</span><span class="nf">getenv</span><span class="p">(</span><span class="sh">'</span><span class="s">DEBUG</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">True</span><span class="sh">'</span><span class="p">)))</span>
</code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>Enter fullscreen mode</title>
<path d="M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-off"><title>Exit fullscreen mode</title>
<path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"></path>
</svg>
</div>
</div>
</div>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-712982"
data-comment-id="712982"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a1mk97ycs93jegn3xavxhb8xfgsfkw3d" class="crayons-icon reaction-icon not-reacted"><title id="a1mk97ycs93jegn3xavxhb8xfgsfkw3d">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="amicadhcf0ecg45qix2h8bneakx329li" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="amicadhcf0ecg45qix2h8bneakx329li">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">4</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="712982"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia"
data-tracking-name="comment_reply_button"
data-testid="reply-button-712982"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aix6zq952ei8477ykobai8errhmtgk28" class="crayons-icon reaction-icon not-reacted"><title id="aix6zq952ei8477ykobai8errhmtgk28">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="at7u3o4n8y9ewox1cowczmwqf7t9xj8e" class="crayons-icon expanded"><title id="at7u3o4n8y9ewox1cowczmwqf7t9xj8e">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="aqqgamrqupo07w83avfsaypdfc38f2h8" class="crayons-icon collapsed"><title id="aqqgamrqupo07w83avfsaypdfc38f2h8">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-1322245"
class="
comment single-comment-node
child
comment--deep-2
"
data-comment-id="1322245"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf"
data-comment-author-id="2562290"
data-content-user-id="2562290">
<a name="comment-2n5pf" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/derrick_k_429f36beeddff99" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg" alt="derrick_k_429f36beeddff99 profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/derrick_k_429f36beeddff99" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
derrick k
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1322245" aria-controls="comment-profile-preview-content-1322245" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="derrick k profile details">
derrick k
</button>
<div id="comment-profile-preview-content-1322245" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/derrick_k_429f36beeddff99" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
derrick k
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":2562290,"name":"derrick k"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: derrick k" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2024-12-12T14:19:12Z" class="date">Dec 12, 2024</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2025-04-19T04:12:37Z" class=date-short-year>
Apr 19 '25
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1322245" aria-controls="comment-dropdown-1322245" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ah7e12qgpvpgv7lg5h12h1hg8gsc35dy" class="crayons-icon pointer-events-none"><title id="ah7e12qgpvpgv7lg5h12h1hg8gsc35dy">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1322245" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to derrick k's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="2562290" data-action="settings-button" data-path="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings" aria-label="Go to derrick k's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="2562290">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="1322245"
data-comment-url="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf"
aria-label="Hide derrick k's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod" aria-label="Moderate derrick k's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf" aria-label="Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>I agree, it works perfectly</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-1322245"
data-comment-id="1322245"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a6w8iq5f90v5v8mu1tvdl5prq64nfxzn" class="crayons-icon reaction-icon not-reacted"><title id="a6w8iq5f90v5v8mu1tvdl5prq64nfxzn">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a2jrd7kzxnp7are2sy91mt0g2y1op9e2" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a2jrd7kzxnp7are2sy91mt0g2y1op9e2">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count">1</span><span class="reactions-label hidden m:inline-block"> like</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="1322245"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf"
data-tracking-name="comment_reply_button"
data-testid="reply-button-1322245"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a71tibt5ws2dqqc3quhiva4b5wgoo31c" class="crayons-icon reaction-icon not-reacted"><title id="a71tibt5ws2dqqc3quhiva4b5wgoo31c">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open>
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="abi2ffrim2fmctcrxzumsbpv3ppxw8hx" class="crayons-icon expanded"><title id="abi2ffrim2fmctcrxzumsbpv3ppxw8hx">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="atcipprtb6yh2byyphfnhsbchu8x18k0" class="crayons-icon collapsed"><title id="atcipprtb6yh2byyphfnhsbchu8x18k0">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div
id="comment-node-1228782"
class="
comment single-comment-node
child
comment--deep-2
"
data-comment-id="1228782"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim"
data-comment-author-id="1625827"
data-content-user-id="1625827">
<a name="comment-2hnim" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/niceguydave" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg" alt="niceguydave profile image" loading="lazy" />
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/niceguydave" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
David Talbot
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1228782" aria-controls="comment-profile-preview-content-1228782" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="David Talbot profile details">
David Talbot
</button>
<div id="comment-profile-preview-content-1228782" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/niceguydave" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg" class="crayons-avatar__image" alt="" loading="lazy" />
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
David Talbot
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":1625827,"name":"David Talbot"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: David Talbot" aria-pressed="false">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2024-06-14T12:03:32Z" class="date">Jun 14, 2024</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2024-09-04T09:09:28Z" class=date-short-year>
Sep 4 '24
</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1228782" aria-controls="comment-dropdown-1228782" aria-expanded="false"
class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon "
aria-label="Toggle dropdown menu" aria-haspopup="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="aclks2g2l2bow740sya6k4kff7mjsiuv" class="crayons-icon pointer-events-none"><title id="aclks2g2l2bow740sya6k4kff7mjsiuv">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1228782" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to David Talbot's comment" data-no-instant>Copy link</a></li>
<li class="comment-actions hidden" data-user-id="1625827" data-action="settings-button" data-path="https://dev.to/niceguydave/comment/2hnim/settings" aria-label="Go to David Talbot's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="1625827">
<button
class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment"
data-hide-type="hide"
data-comment-id="1228782"
data-comment-url="https://dev.to/niceguydave/comment/2hnim"
aria-label="Hide David Talbot's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/niceguydave/comment/2hnim/mod" aria-label="Moderate David Talbot's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/niceguydave/comment/2hnim" aria-label="Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions"></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div
class="
comment__body
text-styles
text-styles--secondary
body
">
<p>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.</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button
class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button"
id="button-for-comment-1228782"
data-comment-id="1228782"
aria-label="like"
data-tracking-name="comment_heart_button">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="al2238nmtzvbhzqi2yywrpxgjdejg8pi" class="crayons-icon reaction-icon not-reacted"><title id="al2238nmtzvbhzqi2yywrpxgjdejg8pi">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="apba72bjxcxsgi9yze6l7sl4vednujll" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="apba72bjxcxsgi9yze6l7sl4vednujll">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count"></span><span class="reactions-label hidden m:inline-block"></span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button
class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex"
data-comment-id="1228782"
data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim"
data-tracking-name="comment_reply_button"
data-testid="reply-button-1228782"
rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a310ex3qenwsd4ez2fili98qg92olabo" class="crayons-icon reaction-icon not-reacted"><title id="a310ex3qenwsd4ez2fili98qg92olabo">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
</div>
</details>
</div>
</section>
<div class="py-6">
<nav class="fs-s align-center block" aria-label="Conduct controls">
<a href="/code-of-conduct" class="crayons-link crayons-link--secondary">Code of Conduct</a>
<span class="opacity-25 px-2" role="presentation">•</span>
<a href="/report-abuse" class="crayons-link crayons-link--secondary">Report abuse</a>
</nav>
</div>
</div>
<div class="fullscreen-code js-fullscreen-code"></div>
<script>
// Listen for resize events and match them to the iframe
window.addEventListener('message', function(event) {
if (event.origin.startsWith('https://platform.twitter.com')) {
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
if (event.source === iframes[i].contentWindow) { // iframes which match the event
var iframe = iframes[i];
var data = event.data['twttr.embed'];
if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {
iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';
iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';
iframe.style.width = data['params']['0']['width'] + 'px !important';
}
break;
}
}
}
}, false);
// Legacy support: We have shifted up how we render tweets, but still need to render
// the old way for old embed. This could eventually be removed.
var videoPreviews = document.getElementsByClassName("ltag__twitter-tweet__media__video-wrapper");
[].forEach.call(videoPreviews, function(el) {
el.onclick = function(e) {
var divHeight = el.offsetHeight;
el.style.maxHeight = divHeight + "px";
el.getElementsByClassName("ltag__twitter-tweet__media--video-preview")[0].style.display = "none";
el.getElementsByClassName("ltag__twitter-tweet__video")[0].style.display = "block";
el.getElementsByTagName("video")[0].play();
}
});
var tweets = document.getElementsByClassName("ltag__twitter-tweet__main");
[].forEach.call(tweets, function(tweet){
tweet.onclick = function(e) {
if (e.target.nodeName == "A" || e.target.parentElement.nodeName == "A") {
return;
}
window.open(tweet.dataset.url,"_blank");
}
});
var waitingOnPodcast = setInterval(function() {
if (typeof initializePodcastPlayback !== 'undefined') {
initializePodcastPlayback();
clearInterval(waitingOnPodcast);
}
}, 1);
function activateRunkitTags() {
if (!areAnyRunkitTagsPresent())
return
var checkRunkit = setInterval(function() {
try {
dynamicallyLoadRunkitLibrary()
if (typeof(RunKit) === 'undefined') {
return
}
replaceTagContentsWithRunkitWidget()
clearInterval(checkRunkit);
} catch(e) {
console.error(e);
clearInterval(checkRunkit);
}
}, 200);
}
function isRunkitTagAlreadyActive(runkitTag) {
return runkitTag.querySelector("iframe") !== null;
};
function areAnyRunkitTagsPresent() {
var presentRunkitTags = document.getElementsByClassName("runkit-element");
return presentRunkitTags.length > 0
}
function replaceTagContentsWithRunkitWidget() {
var targets = document.getElementsByClassName("runkit-element");
for (var i = 0; i < targets.length; i++) {
if (isRunkitTagAlreadyActive(targets[i])) {
continue;
}
var wrapperContent = targets[i].textContent;
if (/^(<iframe src)/.test(wrapperContent) === false) {
if (targets[i].children.length > 0) {
var preamble = targets[i].children[0].textContent;
var content = targets[i].children[1].textContent;
targets[i].innerHTML = "";
var notebook = RunKit.createNotebook({
element: targets[i],
source: content,
preamble: preamble
});
}
}
}
};
function dynamicallyLoadRunkitLibrary() {
if (typeof(dynamicallyLoadScript) === "undefined")
return
dynamicallyLoadScript("//embed.runkit.com")
}
activateRunkitTags();
</script>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<div id="hide-comments-modal" class="hidden">
<form id="hide-comments-modal__form" class="hide-comments-modal__form" data-type="json" action="/comments/hide" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="_method" value="patch" autocomplete="off" /><input type="hidden" name="authenticity_token" value="hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ" autocomplete="off" />
<div class="hide-comments-modal__content">
<p class="pb-2">
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id="hide-comments-modal__comment-permalink" href="#">permalink</a>.
</p>
<label class="crayons-field crayons-field--checkbox my-2">
<input name="hide_children" type="hidden" value="0" autocomplete="off" /><input class="hide_children crayons-checkbox" type="checkbox" value="1" name="hide_children" id="hide_children" />
<p class="crayons-field__label">Hide child comments as well</p>
</label>
<p class="pb-4 pt-2">
<button type="submit" class="crayons-btn">
Confirm
</button>
</p>
</div>
</form> <p class="fs-s color-base-60">For further actions, you may consider blocking this person and/or <a id="hide-comments-modal__report-link" href="/report-abuse">reporting abuse</a></p>
</div>
<div id="runtime-banner-container"></div>
<div id="i18n-translations" data-translations="{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","search_placeholder":"Search...","search_find_related_posts":"Find related posts...","search_powered_by":"Powered by Algolia","search_submit_search":"Submit search for advanced filtering.","search_displaying_recommendations":"Displaying Algolia Recommendations — Start typing to search","article_form_save_changes":"Save changes","article_form_schedule":"Schedule","article_form_publish":"Publish","article_form_loading_preview":"Loading preview","article_form_preview_loaded":"Preview loaded","comments_preview":"Preview","comments_continue_editing":"Continue editing","survey_enter_response":"Enter your response here...","survey_thank_you_response":"Thank you for your response.","survey_thank_you_completing":"Thank you for completing the survey!","dashboard_analytics_readers":"Readers","dashboard_analytics_comments":"Comments","dashboard_ana
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Response Headers
{
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88570",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:42 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100039-CHI",
"x-timer": "S1774089943.754386,VS0,VE2",
"x-xss-protection": "0"
}
Request Options
{
"proxy": {
"type": "datacenter"
},
"scraper_options": {
"impersonate": "chrome"
},
"url": "https://dev.to/nicolaerario/comment/fe1e"
}
No network requests captured.
Network capture is only available for browser-based scrapers (Playwright, Scrapling).
Protections
CDN
Fastly
Fastly delivery headers were detected.
Impact. Edge behavior may affect headers, caching, and request handling.
Recommendation. Use this as routing context rather than a direct block signal.
Evidence
- X-Served-By header present
CDN
Varnish
Varnish caching markers were detected.
Impact. You may be seeing a cache or edge layer instead of direct origin behavior.
Recommendation. Interpret this as edge context and combine it with stronger protection findings if present.
Evidence
- Via header referenced Varnish
Structured Metadata
Open Graph
[
{
"namespace": {
"og": "http://ogp.me/ns#"
},
"properties": [
[
"og:type",
"article"
],
[
"og:title",
"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables"
],
[
"og:description",
"How to use environment variables to keep secure keys out of your code."
],
[
"og:site_name",
"DEV Community"
],
[
"og:url",
"https://dev.to/nicolaerario/comment/fe1e"
],
[
"og:title",
"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community"
],
[
"og:image",
"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg"
]
]
}
]
Scraper Response Data
Response payload
{
"content": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>\n \n <meta name=\"description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta name=\"keywords\" content=\"software, coding, development, engineering, inclusive, community\">\n\n <meta property=\"og:type\" content=\"article\" />\n <meta property=\"og:title\" content=\"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables\" />\n <meta property=\"og:description\" content=\"How to use environment variables to keep secure keys out of your code.\" />\n <meta property=\"og:site_name\" content=\"DEV Community\" />\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@thepracticaldev\">\n <meta name=\"twitter:creator\" content=\"@\">\n <meta name=\"twitter:title\" content=\"Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta name=\"twitter:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n\n <link rel=\"canonical\" href=\"https://dev.to/nicolaerario/comment/fe1e\" />\n <meta property=\"og:url\" content=\"https://dev.to/nicolaerario/comment/fe1e\" />\n <meta property=\"og:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\" />\n <meta name=\"twitter:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta property=\"og:image\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n <meta name=\"twitter:image:src\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n\n <meta name=\"last-updated\" content=\"2026-03-20 10:09:32 UTC\">\n <meta name=\"user-signed-in\" content=\"false\">\n <meta name=\"head-cached-at\" content=\"1774001372\">\n <meta name=\"environment\" content=\"production\">\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"main-minimal-stylesheet\" />\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"main-views-stylesheet\" />\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"main-crayons-stylesheet\" />\n\n <script src=\"https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js\" defer=\"defer\"></script>\n\n <meta name=\"search-script\" content=\"https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n <link rel=\"icon\" type=\"image/x-icon\" href=\"https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" />\n <link rel=\"apple-touch-icon\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link href=\"https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"192x192\" />\n <link href=\"https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"128x128\" />\n <meta name=\"apple-mobile-web-app-title\" content=\"dev.to\">\n <meta name=\"application-name\" content=\"dev.to\">\n <meta name=\"theme-color\" content=\"#ffffff\" media=\"(prefers-color-scheme: light)\">\n <meta name=\"theme-color\" content=\"#000000\" media=\"(prefers-color-scheme: dark)\">\n <link rel=\"search\" href=\"https://dev.to/open-search.xml\" type=\"application/opensearchdescription+xml\" title=\"DEV Community\" />\n\n <meta property=\"forem:name\" content=\"DEV Community\" />\n <meta property=\"forem:logo\" content=\"https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" />\n <meta property=\"forem:domain\" content=\"dev.to\" />\n \n </head>\n <body\n class=\"sans-serif-article-body default-header\"\n data-user-status=\"logged-out\"\n data-is-root-subforem=\"false\"\n data-subforem-id=\"1\"\n data-side-nav-visible=\"true\"\n data-community-name=\"DEV Community\"\n data-subscription-icon=\"https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png\"\n data-locale=\"en\"\n data-honeybadger-key=\"hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr\"\n data-deployed-at=\"2026-03-19T20:49:25Z\"\n data-latest-commit-id=\"f47ae62cb2f25a529b1137abf7975d0e86324bf1\"\n data-ga-tracking=\"UA-71991109-1\"\n data-cookie-banner-user-context=\"logged_out_only\"\n data-cookie-banner-platform-context=\"off\"\n data-algolia-id=\"PRSOBFP46H\"\n data-algolia-search-key=\"9aa7d31610cba78851c9b1f63776a9dd\"\n data-algolia-display=\"true\"\n data-dynamic-url-component=\"bmar11\"\n data-ga4-tracking-id=\"G-TYEM8Y3JN3\">\n \n <script>\n if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {\n document.body.classList.add(\"hidden-shell\");\n }\n if (new Date() > new Date(\"2026-02-04T09:00:00-05:00\")) {\n document.body.dataset.sideNavVisible = \"false\";\n } \n </script>\n\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"secondary-minimal-stylesheet\" />\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"secondary-views-stylesheet\" />\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"secondary-crayons-stylesheet\" />\n\n <div id=\"body-styles\">\n <style>\n :root {\n --accent-brand-lighter-rgb: 80, 99, 301;\n --accent-brand-rgb: 59, 73, 223;\n --accent-brand-darker-rgb: 47, 58, 178;\n }\n </style>\n </div>\n <div id=\"audiocontent\" data-podcast=\"\">\n \n </div>\n <div class=\"navigation-progress\" id=\"navigation-progress\"></div>\n\n<header id=\"topbar\" class=\"crayons-header topbar print-hidden\">\n <span id=\"route-change-target\" tabindex=\"-1\"></span>\n <a href=\"#main-content\" class=\"skip-content-link\">Skip to content</a>\n <div class=\"crayons-header__container\">\n <span class=\"inline-block m:hidden \">\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger mx-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\" class=\"crayons-icon\"><title id=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\">Navigation menu</title>\n <path d=\"M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z\"></path>\n</svg>\n\n </button>\n </span>\n <a href=\"/\" class=\"site-logo\" aria-label=\"DEV Community Home\" >\n <img class=\"site-logo__img\"\n src=\"https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png\"\n style=\"aspect-ratio: 10 / 8\"\n alt=\"DEV Community\">\n</a>\n\n\n <div class=\"crayons-header--search js-search-form\" id=\"header-search\">\n <form accept-charset=\"UTF-8\" method=\"get\" action=\"/search\" role=\"search\">\n <div class=\"crayons-fields crayons-fields--horizontal\">\n <div class=\"crayons-field flex-1 relative\">\n <input id=\"search-input\" class=\"crayons-header--search-input crayons-textfield js-search-input\" type=\"text\" id=\"nav-search\" name=\"q\" placeholder=\"Find related posts...\" autocomplete=\"off\" />\n <button type=\"submit\" aria-label=\"Search\" class=\"c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\">Search</title>\n <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z\"></path>\n</svg>\n\n </button>\n\n <a class=\"crayons-header--search-brand-indicator\" href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral\" target=\"_blank\" rel=\"noopener noreferrer\">\n Powered by Algolia\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" width=\"24\" height=\"24\" viewBox=\"0 0 500 500.34\" role=\"img\" aria-labelledby=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\">Search</title>\n <defs></defs><path class=\"cls-1\" d=\"M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z\"></path>\n</svg>\n\n </a>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"flex items-center h-100 ml-auto\">\n <div class=\"flex\" id=\"authentication-top-nav-actions\">\n <span class=\"hidden m:block\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"c-link c-link--block mr-2 whitespace-nowrap ml-auto\" data-no-instant>\n Log in\n </a>\n </span>\n\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" data-tracking-id=\"ca_top_nav\" data-tracking-source=\"top_navbar\" class=\"c-cta c-cta--branded whitespace-nowrap mr-2\" data-no-instant>\n Create account\n </a>\n </div>\n </div>\n </div>\n</header>\n\n<div class=\"hamburger\">\n <div class=\"hamburger__content\">\n <header class=\"hamburger__content__header\">\n <h2 class=\"fs-l fw-bold flex-1 break-word lh-tight\">DEV Community</h2>\n\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger shrink-0\" aria-label=\"Close\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7jqca81wlh4sunhyocm20yteah4aqdu\" aria-hidden=\"true\" class=\"crayons-icon c-btn__icon\"><title id=\"a7jqca81wlh4sunhyocm20yteah4aqdu\">Close</title><path d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z\"></path></svg>\n\n </button>\n </header>\n\n <div class=\"p-2 js-navigation-links-container\" id=\"authentication-hamburger-actions\">\n </div>\n </div>\n <div class=\"hamburger__overlay js-hamburger-trigger\"></div>\n</div>\n\n\n <div id=\"active-broadcast\" class=\"broadcast-wrapper\"></div>\n<div id=\"page-content\" class=\"wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760\" data-current-page=\"comments-index\">\n <div id=\"page-content-inner\" data-internal-nav=\"false\">\n <div id=\"page-route-change\" class=\"screen-reader-only\" aria-live=\"polite\" aria-atomic=\"true\"></div>\n\n <script src=\"https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js\" defer=\"defer\"></script>\n\n \n<script src=\"https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js\" defer=\"defer\"></script>\n\n<div class=\"crayons-layout crayons-layout--limited-l gap-0\" data-follow-button-container=\"true\">\n <span id=\"comment-article-indicator\" data-article-id=\"172117\"></span>\n\n <div id=\"response-templates-data\" class=\"hidden\"></div>\n <script src=\"https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js\" defer=\"defer\"></script>\n <header class=\"p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0\">\n <h1 class=\"crayons-subtitle-1 mb-4\">\n <span class=\"fw-normal color-base-60\">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>\n </h1>\n <div class=\"flex\">\n <a class=\"crayons-btn crayons-btn--outlined mr-2\" href=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5\">View post</a>\n </div>\n </header>\n\n\n <section\n class=\"crayons-card text-padding min-w-0 z-elevate\"\n id=\"comments-container\"\n data-commentable-id=\"172117\"\n data-commentable-type=\"Article\"\n data-commentable-author-id=\"102760\"\n data-commentable-co-author-ids=\"\">\n\n\n <div class=\"comments\" id=\"comment-trees-container\">\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-0\n root\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"m:mx-1 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\" class=\"crayons-icon expanded\"><title id=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\" class=\"crayons-icon collapsed\"><title id=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-273144\"\n class=\"\n comment single-comment-node\n \n root\n comment--deep-0\n \n \"\n data-comment-id=\"273144\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\"\n data-comment-author-id=\"108601\"\n data-content-user-id=\"108601\">\n <a name=\"comment-fe1e\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273144\" aria-controls=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:02:26Z\" class=date-short-year>\n Sep 17 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273144\" aria-controls=\"comment-dropdown-273144\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\" class=\"crayons-icon pointer-events-none\"><title id=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273144\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"273144\"\n data-comment-url=\"https://dev.to/nicolaerario/comment/fe1e\"\n aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>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</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-273144\"\n data-comment-id=\"273144\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3btu01xca2urgip0ej7lt2tshj6bs28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3btu01xca2urgip0ej7lt2tshj6bs28\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a207ojso91c7liu3pwqmlfkjddpc2zco\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a207ojso91c7liu3pwqmlfkjddpc2zco\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"273144\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-273144\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amu86j05tb5rto5dwbol17xfyeew32qd\" class=\"crayons-icon expanded\"><title id=\"amu86j05tb5rto5dwbol17xfyeew32qd\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"agcra525od8yaymvu4prqj30npmizg4n\" class=\"crayons-icon collapsed\"><title id=\"agcra525od8yaymvu4prqj30npmizg4n\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-273163\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \"\n data-comment-id=\"273163\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\"\n data-comment-author-id=\"102760\"\n data-content-user-id=\"102760\">\n <a name=\"comment-fe27\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/jamestimmins\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" alt=\"jamestimmins profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/jamestimmins\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n James Timmins\n </span>\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -mr-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273163\" aria-controls=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"James Timmins profile details\">\n James Timmins\n \n </button>\n <div id=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/jamestimmins\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n James Timmins\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":102760,"name":"James Timmins"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: James Timmins\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-09-19T16:58:25Z\" class=\"date\">Sep 19, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -ml-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:29:14Z\" class=date-short-year>\n Sep 17 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273163\" aria-controls=\"comment-dropdown-273163\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\" class=\"crayons-icon pointer-events-none\"><title id=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273163\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to James Timmins's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"102760\" data-action=\"settings-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/settings\" aria-label=\"Go to James Timmins's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"102760\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"273163\"\n data-comment-url=\"https://dev.to/jamestimmins/comment/fe27\"\n aria-label=\"Hide James Timmins's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/mod\" aria-label=\"Moderate James Timmins's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>\n\n<ol>\n<li>Explicitly check for a string value. DEBUG = (os.getenv(\"DEBUG\") == 'true')</li>\n<li>Cast the val to a boolean DEBUG = bool(os.getenv(\"DEBUG\")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>\n<li>Use a more fully-featured package like <a href=\"https://github.com/joke2k/django-environ\" rel=\"nofollow\">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>\n</ol>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-273163\"\n data-comment-id=\"273163\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"acgeuroqpao89v1gqag5tnag1lzjbopd\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"acgeuroqpao89v1gqag5tnag1lzjbopd\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"alpwyiy7hd86mwy98dvfifgf6axh83az\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"alpwyiy7hd86mwy98dvfifgf6axh83az\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"273163\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-273163\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\" class=\"crayons-icon expanded\"><title id=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\" class=\"crayons-icon collapsed\"><title id=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-359014\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \"\n data-comment-id=\"359014\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\"\n data-comment-author-id=\"119873\"\n data-content-user-id=\"119873\">\n <a name=\"comment-kb26\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/bhupesh\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" alt=\"bhupesh profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/bhupesh\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Bhupesh Varshney \ud83d\udc7e\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-359014\" aria-controls=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Bhupesh Varshney \ud83d\udc7e profile details\">\n Bhupesh Varshney \ud83d\udc7e\n \n </button>\n <div id=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #0000bc; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/bhupesh\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Bhupesh Varshney \ud83d\udc7e\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney \ud83d\udc7e"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Bhupesh Varshney \ud83d\udc7e\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Email\n </div>\n <div class=\"value\">\n <a href=\"mailto:\"></a>\n </div>\n </li>\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India \ud83c\uddee\ud83c\uddf3\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-12-05T15:02:51Z\" class=\"date\">Dec 5, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2020-01-16T08:59:45Z\" class=date-short-year>\n Jan 16 '20\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-359014\" aria-controls=\"comment-dropdown-359014\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\" class=\"crayons-icon pointer-events-none\"><title id=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-359014\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Bhupesh Varshney \ud83d\udc7e's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"119873\" data-action=\"settings-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/settings\" aria-label=\"Go to Bhupesh Varshney \ud83d\udc7e's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"119873\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"359014\"\n data-comment-url=\"https://dev.to/bhupesh/comment/kb26\"\n aria-label=\"Hide Bhupesh Varshney \ud83d\udc7e's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/mod\" aria-label=\"Moderate Bhupesh Varshney \ud83d\udc7e's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" aria-label=\"Report Bhupesh Varshney \ud83d\udc7e's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<p>thanks for this</p>\n\n</body></html>\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-359014\"\n data-comment-id=\"359014\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"359014\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-359014\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7qkh3osze31p5tx1sa37ss9h410885k\" class=\"crayons-icon expanded\"><title id=\"a7qkh3osze31p5tx1sa37ss9h410885k\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ap76c9hto972y44k19vq49h1o4ipe73a\" class=\"crayons-icon collapsed\"><title id=\"ap76c9hto972y44k19vq49h1o4ipe73a\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-1107596\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \"\n data-comment-id=\"1107596\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\"\n data-comment-author-id=\"1215611\"\n data-content-user-id=\"1215611\">\n <a name=\"comment-2b0bm\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" alt=\"eftehassanpp profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n eftehassanpp\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1107596\" aria-controls=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"eftehassanpp profile details\">\n eftehassanpp\n \n </button>\n <div id=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/eftehassanpp\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n eftehassanpp\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: eftehassanpp\" aria-pressed=\"false\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Full stack Web Developer\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2023-11-21T21:33:36Z\" class=\"date\">Nov 21, 2023</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2023-11-21T21:37:14Z\" class=date-short-year>\n Nov 21 '23\n </time>\n\n <span class=\"hidden m:inline-block\">• Edited on <time datetime=\"2023-11-21T21:37:49Z\" class=\"date-no-year\">Nov 21</time></span>\n <span class=\"m:hidden\">• Edited</span>\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1107596\" aria-controls=\"comment-dropdown-1107596\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"anqysk9wz3k463ox4nph62xear0d3p4w\" class=\"crayons-icon pointer-events-none\"><title id=\"anqysk9wz3k463ox4nph62xear0d3p4w\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1107596\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to eftehassanpp's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1215611\" data-action=\"settings-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/settings\" aria-label=\"Go to eftehassanpp's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1215611\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"1107596\"\n data-comment-url=\"https://dev.to/eftehassanpp/comment/2b0bm\"\n aria-label=\"Hide eftehassanpp's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/mod\" aria-label=\"Moderate eftehassanpp's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>\n<strong>import json</strong><br>\n<strong>DEBUG = json.loads(os.getenv(\"DEBUG\"))<br>\nif DEBUG:<br>\n print(\"Debugging\")</strong></p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-1107596\"\n data-comment-id=\"1107596\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abwchupp63so33156spria10r4l8m637\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"abwchupp63so33156spria10r4l8m637\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\"></span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"1107596\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-1107596\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\" class=\"crayons-icon expanded\"><title id=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2qx85oskkj1aic7osf7czppfjrosxg3\" class=\"crayons-icon collapsed\"><title id=\"a2qx85oskkj1aic7osf7czppfjrosxg3\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-274947\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \"\n data-comment-id=\"274947\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\"\n data-comment-author-id=\"230500\"\n data-content-user-id=\"230500\">\n <a name=\"comment-fgin\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/anshsaini\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" alt=\"anshsaini profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/anshsaini\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Ansh Saini\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274947\" aria-controls=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Ansh Saini profile details\">\n Ansh Saini\n \n </button>\n <div id=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #aaa1e0; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/anshsaini\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Ansh Saini\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":230500,"name":"Ansh Saini"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Ansh Saini\" aria-pressed=\"false\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Here to share my knowledge and learn new things, then share those as well.\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India\n </div>\n </li>\n <li>\n <div class=\"key\">\n Education\n </div>\n <div class=\"value\">\n Bachelor's Degree in Computer Science\n </div>\n </li>\n <li>\n <div class=\"key\">\n Work\n </div>\n <div class=\"value\">\n Software Development Manager at Suraasa\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-09-16T11:14:42Z\" class=\"date\">Sep 16, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T18:08:31Z\" class=date-short-year>\n Sep 19 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274947\" aria-controls=\"comment-dropdown-274947\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\" class=\"crayons-icon pointer-events-none\"><title id=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274947\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Ansh Saini's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"230500\" data-action=\"settings-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/settings\" aria-label=\"Go to Ansh Saini's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"230500\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"274947\"\n data-comment-url=\"https://dev.to/anshsaini/comment/fgin\"\n aria-label=\"Hide Ansh Saini's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/mod\" aria-label=\"Moderate Ansh Saini's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" aria-label=\"Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>\n\n</body></html>\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-274947\"\n data-comment-id=\"274947\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ajn1movjhp9pjktahx5eie34nb5xkz92\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ajn1movjhp9pjktahx5eie34nb5xkz92\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"274947\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-274947\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\" class=\"crayons-icon expanded\"><title id=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\" class=\"crayons-icon collapsed\"><title id=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-274987\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \"\n data-comment-id=\"274987\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\"\n data-comment-author-id=\"108601\"\n data-content-user-id=\"108601\">\n <a name=\"comment-fgkb\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274987\" aria-controls=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T19:03:55Z\" class=date-short-year>\n Sep 19 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274987\" aria-controls=\"comment-dropdown-274987\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\" class=\"crayons-icon pointer-events-none\"><title id=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274987\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"274987\"\n data-comment-url=\"https://dev.to/nicolaerario/comment/fgkb\"\n aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<p>Sure! After time spent to True this, False that... and your app lives of it\u2019s own life </p>\n\n</body></html>\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-274987\"\n data-comment-id=\"274987\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"274987\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-274987\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab4azljunvkclho839543mrgdhe8uanf\" class=\"crayons-icon expanded\"><title id=\"ab4azljunvkclho839543mrgdhe8uanf\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\" class=\"crayons-icon collapsed\"><title id=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-712982\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \"\n data-comment-id=\"712982\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\"\n data-comment-author-id=\"201500\"\n data-content-user-id=\"201500\">\n <a name=\"comment-1eeia\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/guettli\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" alt=\"guettli profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/guettli\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Thomas G\u00fcttler\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-712982\" aria-controls=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Thomas G\u00fcttler profile details\">\n Thomas G\u00fcttler\n \n </button>\n <div id=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/guettli\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Thomas G\u00fcttler\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":201500,"name":"Thomas G\u00fcttler"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Thomas G\u00fcttler\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-07-25T13:33:46Z\" class=\"date\">Jul 25, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2021-05-13T19:37:19Z\" class=date-short-year>\n May 13 '21\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-712982\" aria-controls=\"comment-dropdown-712982\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\" class=\"crayons-icon pointer-events-none\"><title id=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-712982\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Thomas G\u00fcttler's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"201500\" data-action=\"settings-button\" data-path=\"https://dev.to/guettli/comment/1eeia/settings\" aria-label=\"Go to Thomas G\u00fcttler's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"201500\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"712982\"\n data-comment-url=\"https://dev.to/guettli/comment/1eeia\"\n aria-label=\"Hide Thomas G\u00fcttler's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/guettli/comment/1eeia/mod\" aria-label=\"Moderate Thomas G\u00fcttler's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" aria-label=\"Report Thomas G\u00fcttler's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Don't ask my why the author did not accept my PR: <a href=\"https://github.com/theskumar/python-dotenv/pull/293/files\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">github.com/theskumar/python-dotenv...</a></p>\n\n<h3>\n <a name=\"converting-types\" href=\"#converting-types\">\n </a>\n Converting types\n</h3>\n\n<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>\n\n<p>Example:<br>\n</p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from</span> <span class=\"n\">distutils.util</span> <span class=\"kn\">import</span> <span class=\"n\">strtobool</span>\n<span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"nf\">bool</span><span class=\"p\">(</span><span class=\"nf\">strtobool</span><span class=\"p\">(</span><span class=\"n\">os</span><span class=\"p\">.</span><span class=\"nf\">getenv</span><span class=\"p\">(</span><span class=\"sh\">'</span><span class=\"s\">DEBUG</span><span class=\"sh\">'</span><span class=\"p\">,</span> <span class=\"sh\">'</span><span class=\"s\">True</span><span class=\"sh\">'</span><span class=\"p\">)))</span>\n</code></pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>Enter fullscreen mode</title>\n <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>Exit fullscreen mode</title>\n <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"></path>\n</svg>\n\n</div>\n</div>\n</div>\n\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-712982\"\n data-comment-id=\"712982\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amicadhcf0ecg45qix2h8bneakx329li\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"amicadhcf0ecg45qix2h8bneakx329li\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">4</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"712982\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-712982\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aix6zq952ei8477ykobai8errhmtgk28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aix6zq952ei8477ykobai8errhmtgk28\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\" class=\"crayons-icon expanded\"><title id=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aqqgamrqupo07w83avfsaypdfc38f2h8\" class=\"crayons-icon collapsed\"><title id=\"aqqgamrqupo07w83avfsaypdfc38f2h8\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-1322245\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \"\n data-comment-id=\"1322245\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\"\n data-comment-author-id=\"2562290\"\n data-content-user-id=\"2562290\">\n <a name=\"comment-2n5pf\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" alt=\"derrick_k_429f36beeddff99 profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n derrick k\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1322245\" aria-controls=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"derrick k profile details\">\n derrick k\n \n </button>\n <div id=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/derrick_k_429f36beeddff99\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n derrick k\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":2562290,"name":"derrick k"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: derrick k\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-12-12T14:19:12Z\" class=\"date\">Dec 12, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2025-04-19T04:12:37Z\" class=date-short-year>\n Apr 19 '25\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1322245\" aria-controls=\"comment-dropdown-1322245\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\" class=\"crayons-icon pointer-events-none\"><title id=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1322245\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to derrick k's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"2562290\" data-action=\"settings-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings\" aria-label=\"Go to derrick k's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"2562290\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"1322245\"\n data-comment-url=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\"\n aria-label=\"Hide derrick k's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod\" aria-label=\"Moderate derrick k's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>I agree, it works perfectly</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-1322245\"\n data-comment-id=\"1322245\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"1322245\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-1322245\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open>\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\" class=\"crayons-icon expanded\"><title id=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atcipprtb6yh2byyphfnhsbchu8x18k0\" class=\"crayons-icon collapsed\"><title id=\"atcipprtb6yh2byyphfnhsbchu8x18k0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div\n id=\"comment-node-1228782\"\n class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \"\n data-comment-id=\"1228782\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\"\n data-comment-author-id=\"1625827\"\n data-content-user-id=\"1625827\">\n <a name=\"comment-2hnim\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/niceguydave\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" alt=\"niceguydave profile image\" loading=\"lazy\" />\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/niceguydave\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n David Talbot\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1228782\" aria-controls=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"David Talbot profile details\">\n David Talbot\n \n </button>\n <div id=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/niceguydave\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\" />\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n David Talbot\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1625827,"name":"David Talbot"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: David Talbot\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-06-14T12:03:32Z\" class=\"date\">Jun 14, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">•</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2024-09-04T09:09:28Z\" class=date-short-year>\n Sep 4 '24\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1228782\" aria-controls=\"comment-dropdown-1228782\" aria-expanded=\"false\"\n class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \"\n aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aclks2g2l2bow740sya6k4kff7mjsiuv\" class=\"crayons-icon pointer-events-none\"><title id=\"aclks2g2l2bow740sya6k4kff7mjsiuv\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1228782\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to David Talbot's comment\" data-no-instant>Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1625827\" data-action=\"settings-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/settings\" aria-label=\"Go to David Talbot's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1625827\">\n <button\n class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\"\n data-hide-type=\"hide\"\n data-comment-id=\"1228782\"\n data-comment-url=\"https://dev.to/niceguydave/comment/2hnim\"\n aria-label=\"Hide David Talbot's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/mod\" aria-label=\"Moderate David Talbot's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div\n class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>This is really helpful, thanks. Agreed\u2014it seems strange that your PR was rejected, given that variables with False values get (confusingly) cast to True.</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button\n class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\"\n id=\"button-for-comment-1228782\"\n data-comment-id=\"1228782\"\n aria-label=\"like\"\n data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"apba72bjxcxsgi9yze6l7sl4vednujll\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"apba72bjxcxsgi9yze6l7sl4vednujll\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\"></span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button\n class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\"\n data-comment-id=\"1228782\"\n data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\"\n data-tracking-name=\"comment_reply_button\"\n data-testid=\"reply-button-1228782\"\n rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a310ex3qenwsd4ez2fili98qg92olabo\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a310ex3qenwsd4ez2fili98qg92olabo\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n </div>\n\n </section>\n\n <div class=\"py-6\">\n <nav class=\"fs-s align-center block\" aria-label=\"Conduct controls\">\n <a href=\"/code-of-conduct\" class=\"crayons-link crayons-link--secondary\">Code of Conduct</a>\n <span class=\"opacity-25 px-2\" role=\"presentation\">•</span>\n <a href=\"/report-abuse\" class=\"crayons-link crayons-link--secondary\">Report abuse</a>\n</nav>\n\n </div>\n</div>\n\n<div class=\"fullscreen-code js-fullscreen-code\"></div>\n\n<script>\n // Listen for resize events and match them to the iframe\n window.addEventListener('message', function(event) {\n if (event.origin.startsWith('https://platform.twitter.com')) {\n var iframes = document.getElementsByTagName('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (event.source === iframes[i].contentWindow) { // iframes which match the event\n var iframe = iframes[i];\n var data = event.data['twttr.embed'];\n if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {\n iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.width = data['params']['0']['width'] + 'px !important';\n }\n break;\n }\n }\n }\n}, false);\n\n// Legacy support: We have shifted up how we render tweets, but still need to render\n// the old way for old embed. This could eventually be removed.\nvar videoPreviews = document.getElementsByClassName(\"ltag__twitter-tweet__media__video-wrapper\");\n[].forEach.call(videoPreviews, function(el) {\n el.onclick = function(e) {\n var divHeight = el.offsetHeight;\n el.style.maxHeight = divHeight + \"px\";\n el.getElementsByClassName(\"ltag__twitter-tweet__media--video-preview\")[0].style.display = \"none\";\n el.getElementsByClassName(\"ltag__twitter-tweet__video\")[0].style.display = \"block\";\n el.getElementsByTagName(\"video\")[0].play();\n }\n});\nvar tweets = document.getElementsByClassName(\"ltag__twitter-tweet__main\");\n[].forEach.call(tweets, function(tweet){\n tweet.onclick = function(e) {\n if (e.target.nodeName == \"A\" || e.target.parentElement.nodeName == \"A\") {\n return;\n }\n window.open(tweet.dataset.url,\"_blank\");\n }\n});\n\n \n var waitingOnPodcast = setInterval(function() {\n if (typeof initializePodcastPlayback !== 'undefined') {\n initializePodcastPlayback();\n clearInterval(waitingOnPodcast);\n }\n}, 1);\n\n \n function activateRunkitTags() {\n if (!areAnyRunkitTagsPresent())\n return\n\n var checkRunkit = setInterval(function() {\n try {\n dynamicallyLoadRunkitLibrary()\n\n if (typeof(RunKit) === 'undefined') {\n return\n }\n\n replaceTagContentsWithRunkitWidget()\n clearInterval(checkRunkit);\n } catch(e) {\n console.error(e);\n clearInterval(checkRunkit);\n }\n }, 200);\n}\n\nfunction isRunkitTagAlreadyActive(runkitTag) {\n return runkitTag.querySelector(\"iframe\") !== null;\n};\n\nfunction areAnyRunkitTagsPresent() {\n var presentRunkitTags = document.getElementsByClassName(\"runkit-element\");\n\n return presentRunkitTags.length > 0\n}\n\nfunction replaceTagContentsWithRunkitWidget() {\n var targets = document.getElementsByClassName(\"runkit-element\");\n for (var i = 0; i < targets.length; i++) {\n if (isRunkitTagAlreadyActive(targets[i])) {\n continue;\n }\n\n var wrapperContent = targets[i].textContent;\n if (/^(<iframe src)/.test(wrapperContent) === false) {\n if (targets[i].children.length > 0) {\n var preamble = targets[i].children[0].textContent;\n var content = targets[i].children[1].textContent;\n targets[i].innerHTML = \"\";\n var notebook = RunKit.createNotebook({\n element: targets[i],\n source: content,\n preamble: preamble\n });\n }\n }\n }\n};\n\nfunction dynamicallyLoadRunkitLibrary() {\n if (typeof(dynamicallyLoadScript) === \"undefined\")\n return\n\n dynamicallyLoadScript(\"//embed.runkit.com\")\n}\n\nactivateRunkitTags();\n\n</script>\n<script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n\n\n<div id=\"hide-comments-modal\" class=\"hidden\">\n <form id=\"hide-comments-modal__form\" class=\"hide-comments-modal__form\" data-type=\"json\" action=\"/comments/hide\" accept-charset=\"UTF-8\" data-remote=\"true\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" autocomplete=\"off\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" autocomplete=\"off\" /><input type=\"hidden\" name=\"authenticity_token\" value=\"hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ\" autocomplete=\"off\" />\n <div class=\"hide-comments-modal__content\">\n <p class=\"pb-2\">\n Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id=\"hide-comments-modal__comment-permalink\" href=\"#\">permalink</a>.\n </p>\n <label class=\"crayons-field crayons-field--checkbox my-2\">\n <input name=\"hide_children\" type=\"hidden\" value=\"0\" autocomplete=\"off\" /><input class=\"hide_children crayons-checkbox\" type=\"checkbox\" value=\"1\" name=\"hide_children\" id=\"hide_children\" />\n <p class=\"crayons-field__label\">Hide child comments as well</p>\n </label>\n <p class=\"pb-4 pt-2\">\n <button type=\"submit\" class=\"crayons-btn\">\n Confirm\n </button>\n </p>\n </div>\n</form> <p class=\"fs-s color-base-60\">For further actions, you may consider blocking this person and/or <a id=\"hide-comments-modal__report-link\" href=\"/report-abuse\">reporting abuse</a></p>\n</div>\n\n\n <div id=\"runtime-banner-container\"></div>\n <div id=\"i18n-translations\" data-translations=\"{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","search_placeholder":"Search...","search_find_related_posts":"Find related posts...","search_powered_by":"Powered by Algolia","search_submit_search":"Submit search for advanced filtering.","search_displaying_recommendations":"Displaying Algolia Recommendations \u2014 Start typing to search","article_form_save_changes":"Save changes","article_form_schedule":"Schedule","article_form_publish":"Publish","article_form_loading_preview":"Loading preview","article_form_preview_loaded":"Preview loaded","comments_preview":"Preview","comments_continue_editing":"Continue editing","survey_enter_response":"Enter your response here...","survey_thank_you_response":"Thank you for your response.","survey_thank_you_completing":"Thank you for completing the survey!","dashboard_analytics_readers":"Readers","dashboard_analytics_comments":"Comments","dashboard_analytics_reactions":"Reactions","stats_by":"by","editor_new_title":"New post title here...","editor_body_placeholder":"Write your post content here...","tags_field_label":"Add up to 4 tags","tags_field_placeholder":"Add up to 4 tags...","counted_organization":{"one":"%{count} organization","other":"%{count} organizations"},"counted_user":{"one":"%{count} person","other":"%{count} people"},"not_following":"You're not following anyone","following_everyone":"You're following %{details} (everyone)","you_are_following":"You're following","and":"and"}}}\"></div>\n </div>\n</div>\n \n\n<footer id=\"footer\" class=\"crayons-footer print-hidden\">\n <div id=\"footer-container\" class=\"crayons-footer__container\">\n\n\n <style>\n .long-bb-body {\n max-height: calc(100vh - 200px);\n overflow: hidden;\n }\n .long-bb-bottom {\n height: 180px;\n background: linear-gradient(to top, var(--card-bg), transparent);\n margin-top: -180px;\n position:relative;\n z-index: 5;\n }\n</style>\n\n <div\n style=\"\"\n data-display-unit data-id=\"146443\"\n data-category-click=\"click\"\n data-category-impression=\"impression\"\n data-context-type=\"home\"\n data-special=\"nothing\"\n data-article-id=\"\"\n data-type-of=\"in_house\">\n <div class=\"crayons-card crayons-card--secondary crayons-bb bb-placement js-billboard\" style=\"display: inline-flex; flex-direction: column; align-items: center; margin: 0 auto 2rem auto; width: fit-content; padding: 2rem;\">\n <p style=\"font-weight: bold; margin: 0 0 1rem 0;\">\n \ud83d\udc8e DEV Diamond Sponsors\n </p>\n <p style=\"font-size: 0.8em; margin: 0 0 2rem 0;\">\n Thank you to our Diamond Sponsors for supporting the DEV Community\n </p>\n \n <div style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem;\">\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://aistudio.google.com/?utm_source=partner&utm_medium=partner&utm_campaign=FY25-Global-DEVpartnership-sponsorship-AIS&utm_content=-&utm_term=-&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjlyhbdqehj3akhz166w.png\" alt=\"Google AI - Official AI Model and Platform Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 54px; padding: 10px;\" loading=\"lazy\" width=\"2048\" height=\"472\">\n </a>\n <p style=\"text-align: center;\">Google AI is the official AI Model and Platform Partner of DEV</p>\n </div>\n\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://neon.tech/?ref=devto&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnl88cil6afxzmgwrgtt.png\" alt=\"Neon - Official Database Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Neon is the official database partner of DEV</p>\n </div>\n \n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv30ephnolfvnlwgwm0yz.png\" alt=\"Algolia - Official Search Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Algolia is the official search partner of DEV</p>\n </div>\n </div>\n </div>\n </div>\n\n\n <p class=\"fs-s crayons-footer__description\">\n <a class=\"c-link c-link--branded fw-medium\" aria-label=\"DEV Community Home\" href=\"/\">DEV Community</a> \u2014 A space to discuss and keep up software development and manage your software career\n </p>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\" />\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/\">\n Home\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/about\">\n About\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/contact\">\n Contact\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"https://mlh.io/\">\n MLH\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\" />\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/code-of-conduct\">\n Code of Conduct\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/privacy\">\n Privacy Policy\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/terms\">\n Terms of Use\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <div class=\"fs-s\">\n <p>Built on <a class=\"c-link c-link--branded\" target=\"_blank\" rel=\"noopener\" href=\"https://www.forem.com\">Forem</a> \u2014 the <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/opensource\">open source</a> software that powers <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to\">DEV</a> and other inclusive communities.</p>\n <p>Made with love and <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/rails\">Ruby on Rails</a>. DEV Community <span title=\"copyright\">©</span> 2016 - 2026.</p>\n </div>\n </div>\n</footer>\n<div id=\"snack-zone\"></div>\n\n <div id=\"global-signup-modal\" class=\"authentication-modal hidden\">\n <div class=\"authentication-modal__container\">\n <figure class=\"authentication-modal__image-container\">\n <img class=\"authentication-modal__image\" src=\"https://media2.dev.to/dynamic/image/width=190,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\"\n alt=\"DEV Community\" loading=\"lazy\" />\n </figure>\n <div class=\"authentication-modal__content\">\n <p class=\"authentication-modal__description\">\n We're a place where coders share, stay up-to-date and grow their careers.\n </p>\n </div>\n <div class=\"authentication-modal__actions\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"crayons-btn\" aria-label=\"Log in\" data-no-instant>\n Log in\n </a>\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" class=\"crayons-btn crayons-btn--ghost-brand js-global-signup-modal__create-account\" aria-label=\"Create new account\" data-no-instant>\n Create account\n </a>\n </div>\n </div>\n</div>\n\n<script src=\"https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js\" defer=\"defer\"></script>\n\n <div id=\"cookie-consent\"></div>\n <div id=\"reaction-category-resources\" class=\"hidden\" aria-hidden=\"true\">\n <img data-name=\"Like\" data-slug=\"like\" data-position=\"1\" src=\"https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg\" width=\"18\" height=\"18\" />\n <img data-name=\"Unicorn\" data-slug=\"unicorn\" data-position=\"2\" src=\"https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg\" width=\"18\" height=\"18\" />\n <img data-name=\"Exploding Head\" data-slug=\"exploding_head\" data-position=\"3\" src=\"https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg\" width=\"18\" height=\"18\" />\n <img data-name=\"Raised Hands\" data-slug=\"raised_hands\" data-position=\"4\" src=\"https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg\" width=\"18\" height=\"18\" />\n <img data-name=\"Fire\" data-slug=\"fire\" data-position=\"5\" src=\"https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg\" width=\"18\" height=\"18\" />\n</div>\n\n <script>\n var userSignedIn = false;\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n initAuth();\n } else {\n document.addEventListener('DOMContentLoaded', initAuth);\n }\n\n function initAuth() {\n var paramToken = new URLSearchParams(window.location.search).get('jwt');\n\n if (paramToken && !userSignedIn) {\n authenticateUser(paramToken);\n } else {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = 'https://forem.com/auth_pass/iframe';\n \n document.body.appendChild(iframe);\n \n window.addEventListener('message', function(event) {\n if (event.origin !== 'https://forem.com' && event.origin !== window.location.origin) {\n return;\n }\n \n var data = event.data;\n \n if (data.authenticated && !userSignedIn) {\n authenticateUser(data.token);\n } else if(data.authenticated && window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n action: 'login',\n token: data.token,\n }));\n }\n }); \n }\n\n function authenticateUser(token) {\n fetch('/auth_pass/token_login', {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': getMetaContent('csrf-token'),\n },\n body: JSON.stringify({ token: token }),\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(data) {\n if (data.success) {\n if (document.head.querySelector('meta[name=\"user-signed-in\"][content=\"false\"]')) {\n // Reload the page to update the user's state\n location.reload();\n }\n }\n })\n .catch(function(error) {\n console.error('Error during authentication:', error);\n });\n }\n\n function getMetaContent(name) {\n var element = document.querySelector('meta[name=\"' + name + '\"]');\n return element ? element.getAttribute('content') : '';\n }\n }\n</script>\n\n \n \n \n </body>\n </html>\n",
"cookies": null,
"errors": null,
"final_url": "https://dev.to/nicolaerario/comment/fe1e",
"headers": {
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88570",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:42 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100039-CHI",
"x-timer": "S1774089943.754386,VS0,VE2",
"x-xss-protection": "0"
},
"id": null,
"scraper_data": null,
"scraperouter": null,
"screenshot_url": null,
"status_code": 200
}
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Skip to content
Navigation menu [ ](/)
Search [ Powered by Algolia Search
](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)
[ Log in ](https://dev.to/enter?signup_subforem=1) [ Create account
](https://dev.to/enter?signup_subforem=1&state=new-user)
## DEV Community
Close
# Discussion on: Django Cheat Sheet: Keep Credentials Secure with Environment
Variables
[View post](/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-
environment-variables-2ah5)
Collapse Expand
[ ](https://dev.to/nicolaerario)
[ Nicola Erario ](https://dev.to/nicolaerario)
Nicola Erario
[ Nicola Erario ](/nicolaerario)
Follow
* Location
Italy 🇮🇹
* Joined
Oct 18, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe1e)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e)
* * Hide
* * *
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
Like comment: Like comment: 7 likes Like Comment button Reply
Collapse Expand
[ ](https://dev.to/jamestimmins)
[ James Timmins ](https://dev.to/jamestimmins)
James Timmins
[ James Timmins ](/jamestimmins)
Follow
* Joined
Sep 19, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe27)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27)
* * Hide
* * *
Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you
can do.
1. Explicitly check for a string value. DEBUG = (os.getenv("DEBUG") == 'true')
2. Cast the val to a boolean DEBUG = bool(os.getenv("DEBUG")), and use an empty string to denote a false value `DEBUG=''`.
3. Use a more fully-featured package like [django-environ](https://github.com/joke2k/django-environ). There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).
Like comment: Like comment: 7 likes Like Comment button Reply
Collapse Expand
[ ](https://dev.to/bhupesh)
[ Bhupesh Varshney 👾 ](https://dev.to/
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Response Headers
{
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88571",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:43 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100179-CHI",
"x-timer": "S1774089944.558881,VS0,VE2",
"x-xss-protection": "0"
}
Request Options
{
"proxy": {
"type": "datacenter"
},
"scraper_options": {
"network_requests": true
},
"screenshot": true,
"url": "https://dev.to/nicolaerario/comment/fe1e"
}
19 requests captured · 3 API candidates
| Method | URL | Status | Type | Time |
|---|---|---|---|---|
| GET |
https://dev.to/nicolaerario/comment/fe1e
|
200 | document | 0.81s |
| GET |
https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js
3rd-party
|
200 | script | 0.44s |
| GET |
https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js
3rd-party
|
200 | script | 0.56s |
| GET |
https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js
3rd-party
|
200 | script | 0.56s |
| GET |
https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js
3rd-party
|
200 | script | 1.00s |
| GET |
https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js
3rd-party
|
200 | script | 0.89s |
| GET |
https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js
3rd-party
|
200 | script | 1.00s |
| GET |
https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js
3rd-party
|
200 | script | 1.00s |
| GET |
https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js
3rd-party
|
200 | script | 0.90s |
| GET |
https://platform.twitter.com/widgets.js
3rd-party
|
200 | script | 0.83s |
| GET |
https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js
3rd-party
|
200 | script | 0.90s |
| GET |
https://dev.to/async_info/base_data
API
|
200 | json | 0.22s |
| GET |
https://dev.to/reactions?commentable_id=172117&commentable_type=Article
API
|
200 | json | 0.12s |
| GET |
https://forem.com/auth_pass/iframe
3rd-party
|
200 | document | 0.71s |
| POST |
https://dev.to/ahoy/visits
API
|
200 | json | 0.21s |
| GET |
https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=https%3A%2F%2Fdev.to
3rd-party
|
200 | document | 0.38s |
| GET |
https://www.googletagmanager.com/gtag/js?id=G-TYEM8Y3JN3
3rd-party
|
200 | script | 1.15s |
| GET |
https://syndication.twitter.com/settings?session_id=b5f53e2cf62d4844f6f3a58c74e8d4551a8d1e46
3rd-party
|
200 | json | 0.61s |
| POST |
https://www.google-analytics.com/g/collect?v=2&tid=G-TYEM8Y3JN3>m=45je63i0v889731706za200zd889731706&_p=1774089945660&gcd=13l3l3l3l1l1&npa=0&dma=0&cid=502068379.1774089946&ul=en-us&sr=1280x720&uaa=x86&uab=64&uafvl=Not%253AA-Brand%3B99.0.0.0%7CHeadlessChrome%3B145.0.7632.6%7CChromium%3B145.0.7632.6&uamb=0&uam=&uap=Linux&uapv=&uaw=0&are=1&frm=0&pscdl=noapi&_s=1&tag_exp=103116026~103200004~115938466~115938469~116024733~117484252~118104772&sid=1774089945&sct=1&seg=0&dl=https%3A%2F%2Fdev.to%2Fnicolaerario%2Fcomment%2Ffe1e&dt=How%20do%20you%20manage%20Boolean%20with%20python-dotenv%3F%20I%20mean%20that%20(%20for%20example)DEBUG...%20-%20DEV%20Community&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&ep.anonymize_ip=true&tfd=2774
3rd-party
|
— | other | 0.00s |
Potential API Endpoints
- https://dev.to/ahoy/visits
- https://dev.to/async_info/base_data
- https://dev.to/reactions?commentable_id=172117&commentable_type=Article
Protections
CDN
Fastly
Fastly delivery headers were detected.
Impact. Edge behavior may affect headers, caching, and request handling.
Recommendation. Use this as routing context rather than a direct block signal.
Evidence
- X-Served-By header present
CDN
Varnish
Varnish caching markers were detected.
Impact. You may be seeing a cache or edge layer instead of direct origin behavior.
Recommendation. Interpret this as edge context and combine it with stronger protection findings if present.
Evidence
- Via header referenced Varnish
Structured Metadata
Open Graph
[
{
"namespace": {
"og": "http://ogp.me/ns#"
},
"properties": [
[
"og:type",
"article"
],
[
"og:title",
"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables"
],
[
"og:description",
"How to use environment variables to keep secure keys out of your code."
],
[
"og:site_name",
"DEV Community"
],
[
"og:url",
"https://dev.to/nicolaerario/comment/fe1e"
],
[
"og:title",
"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community"
],
[
"og:image",
"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg"
]
]
}
]
Scraper Response Data
Response payload
{
"content": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible\" data-js-focus-visible=\"\"><head>\n <meta charset=\"utf-8\">\n <title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>\n \n <meta name=\"description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta name=\"keywords\" content=\"software, coding, development, engineering, inclusive, community\">\n\n <meta property=\"og:type\" content=\"article\">\n <meta property=\"og:title\" content=\"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta property=\"og:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta property=\"og:site_name\" content=\"DEV Community\">\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@thepracticaldev\">\n <meta name=\"twitter:creator\" content=\"@\">\n <meta name=\"twitter:title\" content=\"Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta name=\"twitter:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n\n <link rel=\"canonical\" href=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:url\" content=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta name=\"twitter:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta property=\"og:image\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n <meta name=\"twitter:image:src\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n\n <meta name=\"last-updated\" content=\"2026-03-20 10:09:32 UTC\">\n <meta name=\"user-signed-in\" content=\"false\">\n <meta name=\"head-cached-at\" content=\"1774001372\">\n <meta name=\"environment\" content=\"production\">\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"main-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"main-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"main-crayons-stylesheet\">\n\n <script src=\"https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js\" defer=\"defer\"></script>\n\n <meta name=\"search-script\" content=\"https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n <link rel=\"icon\" type=\"image/x-icon\" href=\"https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link href=\"https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"192x192\">\n <link href=\"https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"128x128\">\n <meta name=\"apple-mobile-web-app-title\" content=\"dev.to\">\n <meta name=\"application-name\" content=\"dev.to\">\n <meta name=\"theme-color\" content=\"#ffffff\" media=\"(prefers-color-scheme: light)\">\n <meta name=\"theme-color\" content=\"#000000\" media=\"(prefers-color-scheme: dark)\">\n <link rel=\"search\" href=\"https://dev.to/open-search.xml\" type=\"application/opensearchdescription+xml\" title=\"DEV Community\">\n\n <meta property=\"forem:name\" content=\"DEV Community\">\n <meta property=\"forem:logo\" content=\"https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <meta property=\"forem:domain\" content=\"dev.to\">\n \n <script src=\"//www.googletagmanager.com/gtag/js?id=G-TYEM8Y3JN3\" async=\"\"></script><meta name=\"csrf-param\" content=\"authenticity_token\"><meta name=\"csrf-token\" content=\"4GMeZtxpFRdbX83orvTlobbNLmt8OUFvNQI5ZYJ6S0GwYJCujj4-Ok58b1QiXaXl-IRD3McRIYPpIW-w_mMtow\"></head>\n <body class=\"sans-serif-article-body default-header\" data-user-status=\"logged-out\" data-is-root-subforem=\"false\" data-subforem-id=\"1\" data-side-nav-visible=\"false\" data-community-name=\"DEV Community\" data-subscription-icon=\"https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png\" data-locale=\"en\" data-honeybadger-key=\"hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr\" data-deployed-at=\"2026-03-19T20:49:25Z\" data-latest-commit-id=\"f47ae62cb2f25a529b1137abf7975d0e86324bf1\" data-ga-tracking=\"UA-71991109-1\" data-cookie-banner-user-context=\"logged_out_only\" data-cookie-banner-platform-context=\"off\" data-algolia-id=\"PRSOBFP46H\" data-algolia-search-key=\"9aa7d31610cba78851c9b1f63776a9dd\" data-algolia-display=\"true\" data-dynamic-url-component=\"bmar11\" data-ga4-tracking-id=\"G-TYEM8Y3JN3\" data-runtime=\"Browser-Linux\" data-follow-handler-initialized=\"true\" data-loaded=\"true\">\n \n <script>\n if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {\n document.body.classList.add(\"hidden-shell\");\n }\n if (new Date() > new Date(\"2026-02-04T09:00:00-05:00\")) {\n document.body.dataset.sideNavVisible = \"false\";\n } \n </script>\n\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"secondary-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"secondary-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"secondary-crayons-stylesheet\">\n\n <div id=\"body-styles\">\n <style>\n :root {\n --accent-brand-lighter-rgb: 80, 99, 301;\n --accent-brand-rgb: 59, 73, 223;\n --accent-brand-darker-rgb: 47, 58, 178;\n }\n </style>\n </div>\n <div id=\"audiocontent\" data-podcast=\"\">\n \n </div>\n <div class=\"navigation-progress\" id=\"navigation-progress\"></div>\n\n<header id=\"topbar\" class=\"crayons-header topbar print-hidden\">\n <span id=\"route-change-target\" tabindex=\"-1\"></span>\n <a href=\"#main-content\" class=\"skip-content-link\">Skip to content</a>\n <div class=\"crayons-header__container\">\n <span class=\"inline-block m:hidden \">\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger mx-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\" class=\"crayons-icon\"><title id=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\">Navigation menu</title>\n <path d=\"M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z\"></path>\n</svg>\n\n </button>\n </span>\n <a href=\"/\" class=\"site-logo\" aria-label=\"DEV Community Home\">\n <img class=\"site-logo__img\" src=\"https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png\" style=\"aspect-ratio: 10 / 8\" alt=\"DEV Community\">\n</a>\n\n\n <div class=\"crayons-header--search js-search-form\" id=\"header-search\">\n <form accept-charset=\"UTF-8\" method=\"get\" action=\"/search\" role=\"search\">\n <div class=\"crayons-fields crayons-fields--horizontal\">\n <div class=\"crayons-field flex-1 relative\">\n <input id=\"search-input\" class=\"crayons-header--search-input crayons-textfield js-search-input\" type=\"text\" name=\"q\" placeholder=\"Find related posts...\" autocomplete=\"off\" style=\"\">\n <button type=\"submit\" aria-label=\"Search\" class=\"c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\">Search</title>\n <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z\"></path>\n</svg>\n\n </button>\n\n <a class=\"crayons-header--search-brand-indicator\" href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral\" target=\"_blank\" rel=\"noopener noreferrer\">\n Powered by Algolia\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" width=\"24\" height=\"24\" viewBox=\"0 0 500 500.34\" role=\"img\" aria-labelledby=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\">Search</title>\n <defs></defs><path class=\"cls-1\" d=\"M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z\"></path>\n</svg>\n\n </a>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"flex items-center h-100 ml-auto\">\n <div class=\"flex\" id=\"authentication-top-nav-actions\">\n <span class=\"hidden m:block\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"c-link c-link--block mr-2 whitespace-nowrap ml-auto\" data-no-instant=\"\">\n Log in\n </a>\n </span>\n\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" data-tracking-id=\"ca_top_nav\" data-tracking-source=\"top_navbar\" class=\"c-cta c-cta--branded whitespace-nowrap mr-2\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n </div>\n</header>\n\n<div class=\"hamburger\">\n <div class=\"hamburger__content\">\n <header class=\"hamburger__content__header\">\n <h2 class=\"fs-l fw-bold flex-1 break-word lh-tight\">DEV Community</h2>\n\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger shrink-0\" aria-label=\"Close\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7jqca81wlh4sunhyocm20yteah4aqdu\" aria-hidden=\"true\" class=\"crayons-icon c-btn__icon\"><title id=\"a7jqca81wlh4sunhyocm20yteah4aqdu\">Close</title><path d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z\"></path></svg>\n\n </button>\n </header>\n\n <div class=\"p-2 js-navigation-links-container\" id=\"authentication-hamburger-actions\">\n </div>\n </div>\n <div class=\"hamburger__overlay js-hamburger-trigger\"></div>\n</div>\n\n\n <div id=\"active-broadcast\" class=\"broadcast-wrapper\"></div>\n<div id=\"page-content\" class=\"wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760\" data-current-page=\"comments-index\">\n <div id=\"page-content-inner\" data-internal-nav=\"false\">\n <div id=\"page-route-change\" class=\"screen-reader-only\" aria-live=\"polite\" aria-atomic=\"true\"></div>\n\n <script src=\"https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js\" defer=\"defer\"></script>\n\n \n<script src=\"https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js\" defer=\"defer\"></script>\n\n<div class=\"crayons-layout crayons-layout--limited-l gap-0\" data-follow-button-container=\"true\">\n <span id=\"comment-article-indicator\" data-article-id=\"172117\"></span>\n\n <div id=\"response-templates-data\" class=\"hidden\"></div>\n <script src=\"https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js\" defer=\"defer\"></script>\n <header class=\"p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0\">\n <h1 class=\"crayons-subtitle-1 mb-4\">\n <span class=\"fw-normal color-base-60\">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>\n </h1>\n <div class=\"flex\">\n <a class=\"crayons-btn crayons-btn--outlined mr-2\" href=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5\">View post</a>\n </div>\n </header>\n\n\n <section class=\"crayons-card text-padding min-w-0 z-elevate\" id=\"comments-container\" data-commentable-id=\"172117\" data-commentable-type=\"Article\" data-commentable-author-id=\"102760\" data-commentable-co-author-ids=\"\">\n\n\n <div class=\"comments\" id=\"comment-trees-container\">\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-0\n root\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"m:mx-1 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\" class=\"crayons-icon expanded\"><title id=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\" class=\"crayons-icon collapsed\"><title id=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273144\" class=\"\n comment single-comment-node\n \n root\n comment--deep-0\n \n \" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fe1e\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273144\" aria-controls=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:02:26Z\" class=\"date-short-year\" title=\"Tuesday, September 17, 2019 at 6:02:26 PM\">Sep 17 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273144\" aria-controls=\"comment-dropdown-273144\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\" class=\"crayons-icon pointer-events-none\"><title id=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273144\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273144\" data-comment-url=\"https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>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</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273144\" data-comment-id=\"273144\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 9;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3btu01xca2urgip0ej7lt2tshj6bs28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3btu01xca2urgip0ej7lt2tshj6bs28\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a207ojso91c7liu3pwqmlfkjddpc2zco\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a207ojso91c7liu3pwqmlfkjddpc2zco\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-273144\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273144\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amu86j05tb5rto5dwbol17xfyeew32qd\" class=\"crayons-icon expanded\"><title id=\"amu86j05tb5rto5dwbol17xfyeew32qd\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"agcra525od8yaymvu4prqj30npmizg4n\" class=\"crayons-icon collapsed\"><title id=\"agcra525od8yaymvu4prqj30npmizg4n\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273163\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-comment-author-id=\"102760\" data-content-user-id=\"102760\">\n <a name=\"comment-fe27\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/jamestimmins\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" alt=\"jamestimmins profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/jamestimmins\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n James Timmins\n </span>\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -mr-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273163\" aria-controls=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"James Timmins profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n James Timmins\n \n </button>\n <div id=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/jamestimmins\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n James Timmins\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":102760,"name":"James Timmins"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: James Timmins\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-09-19T16:58:25Z\" class=\"date\">Sep 19, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -ml-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:29:14Z\" class=\"date-short-year\" title=\"Tuesday, September 17, 2019 at 6:29:14 PM\">Sep 17 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273163\" aria-controls=\"comment-dropdown-273163\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\" class=\"crayons-icon pointer-events-none\"><title id=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273163\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to James Timmins's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"102760\" data-action=\"settings-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/settings\" aria-label=\"Go to James Timmins's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"102760\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273163\" data-comment-url=\"https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Hide James Timmins's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/mod\" aria-label=\"Moderate James Timmins's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>\n\n<ol>\n<li>Explicitly check for a string value. DEBUG = (os.getenv(\"DEBUG\") == 'true')</li>\n<li>Cast the val to a boolean DEBUG = bool(os.getenv(\"DEBUG\")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>\n<li>Use a more fully-featured package like <a href=\"https://github.com/joke2k/django-environ\" rel=\"nofollow\">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>\n</ol>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273163\" data-comment-id=\"273163\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 8;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"acgeuroqpao89v1gqag5tnag1lzjbopd\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"acgeuroqpao89v1gqag5tnag1lzjbopd\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"alpwyiy7hd86mwy98dvfifgf6axh83az\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"alpwyiy7hd86mwy98dvfifgf6axh83az\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-273163\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273163\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\" class=\"crayons-icon expanded\"><title id=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\" class=\"crayons-icon collapsed\"><title id=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-359014\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-comment-author-id=\"119873\" data-content-user-id=\"119873\">\n <a name=\"comment-kb26\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/bhupesh\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" alt=\"bhupesh profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/bhupesh\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Bhupesh Varshney \ud83d\udc7e\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-359014\" aria-controls=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Bhupesh Varshney \ud83d\udc7e profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Bhupesh Varshney \ud83d\udc7e\n \n </button>\n <div id=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #0000bc; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/bhupesh\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Bhupesh Varshney \ud83d\udc7e\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney \ud83d\udc7e"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Bhupesh Varshney \ud83d\udc7e\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Email\n </div>\n <div class=\"value\">\n <a href=\"mailto:\"></a>\n </div>\n </li>\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India \ud83c\uddee\ud83c\uddf3\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-12-05T15:02:51Z\" class=\"date\">Dec 5, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2020-01-16T08:59:45Z\" class=\"date-short-year\" title=\"Thursday, January 16, 2020 at 8:59:45 AM\">Jan 16 '20</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-359014\" aria-controls=\"comment-dropdown-359014\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\" class=\"crayons-icon pointer-events-none\"><title id=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-359014\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Bhupesh Varshney \ud83d\udc7e's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"119873\" data-action=\"settings-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/settings\" aria-label=\"Go to Bhupesh Varshney \ud83d\udc7e's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"119873\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"359014\" data-comment-url=\"https://dev.to/bhupesh/comment/kb26\" aria-label=\"Hide Bhupesh Varshney \ud83d\udc7e's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/mod\" aria-label=\"Moderate Bhupesh Varshney \ud83d\udc7e's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" aria-label=\"Report Bhupesh Varshney \ud83d\udc7e's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>thanks for this</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-359014\" data-comment-id=\"359014\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 7;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-359014\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-359014\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7qkh3osze31p5tx1sa37ss9h410885k\" class=\"crayons-icon expanded\"><title id=\"a7qkh3osze31p5tx1sa37ss9h410885k\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ap76c9hto972y44k19vq49h1o4ipe73a\" class=\"crayons-icon collapsed\"><title id=\"ap76c9hto972y44k19vq49h1o4ipe73a\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1107596\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-comment-author-id=\"1215611\" data-content-user-id=\"1215611\">\n <a name=\"comment-2b0bm\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" alt=\"eftehassanpp profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n eftehassanpp\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1107596\" aria-controls=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"eftehassanpp profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n eftehassanpp\n \n </button>\n <div id=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/eftehassanpp\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n eftehassanpp\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: eftehassanpp\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Full stack Web Developer\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2023-11-21T21:33:36Z\" class=\"date\">Nov 21, 2023</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2023-11-21T21:37:14Z\" class=\"date-short-year\" title=\"Tuesday, November 21, 2023 at 9:37:14 PM\">Nov 21 '23</time>\n\n <span class=\"hidden m:inline-block\">\u2022 Edited on <time datetime=\"2023-11-21T21:37:49Z\" class=\"date-no-year\" title=\"Tuesday, November 21, 2023 at 9:37:49 PM\">Nov 21</time></span>\n <span class=\"m:hidden\">\u2022 Edited</span>\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1107596\" aria-controls=\"comment-dropdown-1107596\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"anqysk9wz3k463ox4nph62xear0d3p4w\" class=\"crayons-icon pointer-events-none\"><title id=\"anqysk9wz3k463ox4nph62xear0d3p4w\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1107596\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to eftehassanpp's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1215611\" data-action=\"settings-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/settings\" aria-label=\"Go to eftehassanpp's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1215611\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1107596\" data-comment-url=\"https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Hide eftehassanpp's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/mod\" aria-label=\"Moderate eftehassanpp's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>\n<strong>import json</strong><br>\n<strong>DEBUG = json.loads(os.getenv(\"DEBUG\"))<br>\nif DEBUG:<br>\n print(\"Debugging\")</strong></p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1107596\" data-comment-id=\"1107596\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 6;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abwchupp63so33156spria10r4l8m637\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"abwchupp63so33156spria10r4l8m637\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count hidden\">0</span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1107596\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\" class=\"crayons-icon expanded\"><title id=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2qx85oskkj1aic7osf7czppfjrosxg3\" class=\"crayons-icon collapsed\"><title id=\"a2qx85oskkj1aic7osf7czppfjrosxg3\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274947\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-comment-author-id=\"230500\" data-content-user-id=\"230500\">\n <a name=\"comment-fgin\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/anshsaini\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" alt=\"anshsaini profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/anshsaini\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Ansh Saini\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274947\" aria-controls=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Ansh Saini profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Ansh Saini\n \n </button>\n <div id=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #aaa1e0; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/anshsaini\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Ansh Saini\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":230500,"name":"Ansh Saini"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Ansh Saini\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Here to share my knowledge and learn new things, then share those as well.\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India\n </div>\n </li>\n <li>\n <div class=\"key\">\n Education\n </div>\n <div class=\"value\">\n Bachelor's Degree in Computer Science\n </div>\n </li>\n <li>\n <div class=\"key\">\n Work\n </div>\n <div class=\"value\">\n Software Development Manager at Suraasa\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-09-16T11:14:42Z\" class=\"date\">Sep 16, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T18:08:31Z\" class=\"date-short-year\" title=\"Thursday, September 19, 2019 at 6:08:31 PM\">Sep 19 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274947\" aria-controls=\"comment-dropdown-274947\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\" class=\"crayons-icon pointer-events-none\"><title id=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274947\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Ansh Saini's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"230500\" data-action=\"settings-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/settings\" aria-label=\"Go to Ansh Saini's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"230500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274947\" data-comment-url=\"https://dev.to/anshsaini/comment/fgin\" aria-label=\"Hide Ansh Saini's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/mod\" aria-label=\"Moderate Ansh Saini's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" aria-label=\"Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274947\" data-comment-id=\"274947\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 5;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ajn1movjhp9pjktahx5eie34nb5xkz92\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ajn1movjhp9pjktahx5eie34nb5xkz92\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-274947\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274947\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\" class=\"crayons-icon expanded\"><title id=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\" class=\"crayons-icon collapsed\"><title id=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274987\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fgkb\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274987\" aria-controls=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T19:03:55Z\" class=\"date-short-year\" title=\"Thursday, September 19, 2019 at 7:03:55 PM\">Sep 19 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274987\" aria-controls=\"comment-dropdown-274987\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\" class=\"crayons-icon pointer-events-none\"><title id=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274987\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274987\" data-comment-url=\"https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Sure! After time spent to True this, False that... and your app lives of it\u2019s own life </p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274987\" data-comment-id=\"274987\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 4;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-274987\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274987\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab4azljunvkclho839543mrgdhe8uanf\" class=\"crayons-icon expanded\"><title id=\"ab4azljunvkclho839543mrgdhe8uanf\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\" class=\"crayons-icon collapsed\"><title id=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-712982\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-comment-author-id=\"201500\" data-content-user-id=\"201500\">\n <a name=\"comment-1eeia\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/guettli\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" alt=\"guettli profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/guettli\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Thomas G\u00fcttler\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-712982\" aria-controls=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Thomas G\u00fcttler profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Thomas G\u00fcttler\n \n </button>\n <div id=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/guettli\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Thomas G\u00fcttler\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":201500,"name":"Thomas G\u00fcttler"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Thomas G\u00fcttler\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-07-25T13:33:46Z\" class=\"date\">Jul 25, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2021-05-13T19:37:19Z\" class=\"date-short-year\" title=\"Thursday, May 13, 2021 at 7:37:19 PM\">May 13 '21</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-712982\" aria-controls=\"comment-dropdown-712982\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\" class=\"crayons-icon pointer-events-none\"><title id=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-712982\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Thomas G\u00fcttler's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"201500\" data-action=\"settings-button\" data-path=\"https://dev.to/guettli/comment/1eeia/settings\" aria-label=\"Go to Thomas G\u00fcttler's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"201500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"712982\" data-comment-url=\"https://dev.to/guettli/comment/1eeia\" aria-label=\"Hide Thomas G\u00fcttler's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/guettli/comment/1eeia/mod\" aria-label=\"Moderate Thomas G\u00fcttler's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" aria-label=\"Report Thomas G\u00fcttler's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Don't ask my why the author did not accept my PR: <a href=\"https://github.com/theskumar/python-dotenv/pull/293/files\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">github.com/theskumar/python-dotenv...</a></p>\n\n<h3>\n <a name=\"converting-types\" href=\"#converting-types\">\n </a>\n Converting types\n</h3>\n\n<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>\n\n<p>Example:<br>\n</p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from</span> <span class=\"n\">distutils.util</span> <span class=\"kn\">import</span> <span class=\"n\">strtobool</span>\n<span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"nf\">bool</span><span class=\"p\">(</span><span class=\"nf\">strtobool</span><span class=\"p\">(</span><span class=\"n\">os</span><span class=\"p\">.</span><span class=\"nf\">getenv</span><span class=\"p\">(</span><span class=\"sh\">'</span><span class=\"s\">DEBUG</span><span class=\"sh\">'</span><span class=\"p\">,</span> <span class=\"sh\">'</span><span class=\"s\">True</span><span class=\"sh\">'</span><span class=\"p\">)))</span>\n</code></pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>Enter fullscreen mode</title>\n <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>Exit fullscreen mode</title>\n <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"></path>\n</svg>\n\n</div>\n</div>\n</div>\n\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-712982\" data-comment-id=\"712982\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 3;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amicadhcf0ecg45qix2h8bneakx329li\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"amicadhcf0ecg45qix2h8bneakx329li\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-712982\">4</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-712982\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aix6zq952ei8477ykobai8errhmtgk28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aix6zq952ei8477ykobai8errhmtgk28\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\" class=\"crayons-icon expanded\"><title id=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aqqgamrqupo07w83avfsaypdfc38f2h8\" class=\"crayons-icon collapsed\"><title id=\"aqqgamrqupo07w83avfsaypdfc38f2h8\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1322245\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-comment-author-id=\"2562290\" data-content-user-id=\"2562290\">\n <a name=\"comment-2n5pf\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" alt=\"derrick_k_429f36beeddff99 profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n derrick k\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1322245\" aria-controls=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"derrick k profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n derrick k\n \n </button>\n <div id=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/derrick_k_429f36beeddff99\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n derrick k\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":2562290,"name":"derrick k"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: derrick k\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-12-12T14:19:12Z\" class=\"date\">Dec 12, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2025-04-19T04:12:37Z\" class=\"date-short-year\" title=\"Saturday, April 19, 2025 at 4:12:37 AM\">Apr 19 '25</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1322245\" aria-controls=\"comment-dropdown-1322245\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\" class=\"crayons-icon pointer-events-none\"><title id=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1322245\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to derrick k's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"2562290\" data-action=\"settings-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings\" aria-label=\"Go to derrick k's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"2562290\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1322245\" data-comment-url=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Hide derrick k's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod\" aria-label=\"Moderate derrick k's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>I agree, it works perfectly</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1322245\" data-comment-id=\"1322245\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 2;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-1322245\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1322245\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\" class=\"crayons-icon expanded\"><title id=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atcipprtb6yh2byyphfnhsbchu8x18k0\" class=\"crayons-icon collapsed\"><title id=\"atcipprtb6yh2byyphfnhsbchu8x18k0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1228782\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-comment-author-id=\"1625827\" data-content-user-id=\"1625827\">\n <a name=\"comment-2hnim\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/niceguydave\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" alt=\"niceguydave profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/niceguydave\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n David Talbot\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1228782\" aria-controls=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"David Talbot profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n David Talbot\n \n </button>\n <div id=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/niceguydave\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n David Talbot\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1625827,"name":"David Talbot"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: David Talbot\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-06-14T12:03:32Z\" class=\"date\">Jun 14, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2024-09-04T09:09:28Z\" class=\"date-short-year\" title=\"Wednesday, September 4, 2024 at 9:09:28 AM\">Sep 4 '24</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1228782\" aria-controls=\"comment-dropdown-1228782\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aclks2g2l2bow740sya6k4kff7mjsiuv\" class=\"crayons-icon pointer-events-none\"><title id=\"aclks2g2l2bow740sya6k4kff7mjsiuv\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1228782\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to David Talbot's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1625827\" data-action=\"settings-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/settings\" aria-label=\"Go to David Talbot's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1625827\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1228782\" data-comment-url=\"https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Hide David Talbot's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/mod\" aria-label=\"Moderate David Talbot's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>This is really helpful, thanks. Agreed\u2014it seems strange that your PR was rejected, given that variables with False values get (confusingly) cast to True.</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1228782\" data-comment-id=\"1228782\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 1;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"apba72bjxcxsgi9yze6l7sl4vednujll\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"apba72bjxcxsgi9yze6l7sl4vednujll\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count hidden\">0</span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1228782\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a310ex3qenwsd4ez2fili98qg92olabo\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a310ex3qenwsd4ez2fili98qg92olabo\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n </div>\n\n </section>\n\n <div class=\"py-6\">\n <nav class=\"fs-s align-center block\" aria-label=\"Conduct controls\">\n <a href=\"/code-of-conduct\" class=\"crayons-link crayons-link--secondary\">Code of Conduct</a>\n <span class=\"opacity-25 px-2\" role=\"presentation\">\u2022</span>\n <a href=\"/report-abuse\" class=\"crayons-link crayons-link--secondary\">Report abuse</a>\n</nav>\n\n </div>\n</div>\n\n<div class=\"fullscreen-code js-fullscreen-code\"></div>\n\n<script>\n // Listen for resize events and match them to the iframe\n window.addEventListener('message', function(event) {\n if (event.origin.startsWith('https://platform.twitter.com')) {\n var iframes = document.getElementsByTagName('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (event.source === iframes[i].contentWindow) { // iframes which match the event\n var iframe = iframes[i];\n var data = event.data['twttr.embed'];\n if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {\n iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.width = data['params']['0']['width'] + 'px !important';\n }\n break;\n }\n }\n }\n}, false);\n\n// Legacy support: We have shifted up how we render tweets, but still need to render\n// the old way for old embed. This could eventually be removed.\nvar videoPreviews = document.getElementsByClassName(\"ltag__twitter-tweet__media__video-wrapper\");\n[].forEach.call(videoPreviews, function(el) {\n el.onclick = function(e) {\n var divHeight = el.offsetHeight;\n el.style.maxHeight = divHeight + \"px\";\n el.getElementsByClassName(\"ltag__twitter-tweet__media--video-preview\")[0].style.display = \"none\";\n el.getElementsByClassName(\"ltag__twitter-tweet__video\")[0].style.display = \"block\";\n el.getElementsByTagName(\"video\")[0].play();\n }\n});\nvar tweets = document.getElementsByClassName(\"ltag__twitter-tweet__main\");\n[].forEach.call(tweets, function(tweet){\n tweet.onclick = function(e) {\n if (e.target.nodeName == \"A\" || e.target.parentElement.nodeName == \"A\") {\n return;\n }\n window.open(tweet.dataset.url,\"_blank\");\n }\n});\n\n \n var waitingOnPodcast = setInterval(function() {\n if (typeof initializePodcastPlayback !== 'undefined') {\n initializePodcastPlayback();\n clearInterval(waitingOnPodcast);\n }\n}, 1);\n\n \n function activateRunkitTags() {\n if (!areAnyRunkitTagsPresent())\n return\n\n var checkRunkit = setInterval(function() {\n try {\n dynamicallyLoadRunkitLibrary()\n\n if (typeof(RunKit) === 'undefined') {\n return\n }\n\n replaceTagContentsWithRunkitWidget()\n clearInterval(checkRunkit);\n } catch(e) {\n console.error(e);\n clearInterval(checkRunkit);\n }\n }, 200);\n}\n\nfunction isRunkitTagAlreadyActive(runkitTag) {\n return runkitTag.querySelector(\"iframe\") !== null;\n};\n\nfunction areAnyRunkitTagsPresent() {\n var presentRunkitTags = document.getElementsByClassName(\"runkit-element\");\n\n return presentRunkitTags.length > 0\n}\n\nfunction replaceTagContentsWithRunkitWidget() {\n var targets = document.getElementsByClassName(\"runkit-element\");\n for (var i = 0; i < targets.length; i++) {\n if (isRunkitTagAlreadyActive(targets[i])) {\n continue;\n }\n\n var wrapperContent = targets[i].textContent;\n if (/^(<iframe src)/.test(wrapperContent) === false) {\n if (targets[i].children.length > 0) {\n var preamble = targets[i].children[0].textContent;\n var content = targets[i].children[1].textContent;\n targets[i].innerHTML = \"\";\n var notebook = RunKit.createNotebook({\n element: targets[i],\n source: content,\n preamble: preamble\n });\n }\n }\n }\n};\n\nfunction dynamicallyLoadRunkitLibrary() {\n if (typeof(dynamicallyLoadScript) === \"undefined\")\n return\n\n dynamicallyLoadScript(\"//embed.runkit.com\")\n}\n\nactivateRunkitTags();\n\n</script>\n<script async=\"\" src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n\n\n<div id=\"hide-comments-modal\" class=\"hidden\">\n <form id=\"hide-comments-modal__form\" class=\"hide-comments-modal__form\" data-type=\"json\" action=\"/comments/hide\" accept-charset=\"UTF-8\" data-remote=\"true\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"\u2713\" autocomplete=\"off\" style=\"\"><input type=\"hidden\" name=\"_method\" value=\"patch\" autocomplete=\"off\" style=\"\"><input type=\"hidden\" name=\"authenticity_token\" value=\"hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ\" autocomplete=\"off\" style=\"\">\n <div class=\"hide-comments-modal__content\">\n <p class=\"pb-2\">\n Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id=\"hide-comments-modal__comment-permalink\" href=\"#\">permalink</a>.\n </p>\n <label class=\"crayons-field crayons-field--checkbox my-2\">\n <input name=\"hide_children\" type=\"hidden\" value=\"0\" autocomplete=\"off\" style=\"\"><input class=\"hide_children crayons-checkbox\" type=\"checkbox\" value=\"1\" name=\"hide_children\" id=\"hide_children\" style=\"\">\n <p class=\"crayons-field__label\">Hide child comments as well</p>\n </label>\n <p class=\"pb-4 pt-2\">\n <button type=\"submit\" class=\"crayons-btn\">\n Confirm\n </button>\n </p>\n </div>\n</form> <p class=\"fs-s color-base-60\">For further actions, you may consider blocking this person and/or <a id=\"hide-comments-modal__report-link\" href=\"/report-abuse\">reporting abuse</a></p>\n</div>\n\n\n <div id=\"runtime-banner-container\"></div>\n <div id=\"i18n-translations\" data-translations=\"{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","search_placeholder":"Search...","search_find_related_posts":"Find related posts...","search_powered_by":"Powered by Algolia","search_submit_search":"Submit search for advanced filtering.","search_displaying_recommendations":"Displaying Algolia Recommendations \u2014 Start typing to search","article_form_save_changes":"Save changes","article_form_schedule":"Schedule","article_form_publish":"Publish","article_form_loading_preview":"Loading preview","article_form_preview_loaded":"Preview loaded","comments_preview":"Preview","comments_continue_editing":"Continue editing","survey_enter_response":"Enter your response here...","survey_thank_you_response":"Thank you for your response.","survey_thank_you_completing":"Thank you for completing the survey!","dashboard_analytics_readers":"Readers","dashboard_analytics_comments":"Comments","dashboard_analytics_reactions":"Reactions","stats_by":"by","editor_new_title":"New post title here...","editor_body_placeholder":"Write your post content here...","tags_field_label":"Add up to 4 tags","tags_field_placeholder":"Add up to 4 tags...","counted_organization":{"one":"%{count} organization","other":"%{count} organizations"},"counted_user":{"one":"%{count} person","other":"%{count} people"},"not_following":"You're not following anyone","following_everyone":"You're following %{details} (everyone)","you_are_following":"You're following","and":"and"}}}\"></div>\n </div>\n</div>\n \n\n<footer id=\"footer\" class=\"crayons-footer print-hidden\">\n <div id=\"footer-container\" class=\"crayons-footer__container\">\n\n\n <style>\n .long-bb-body {\n max-height: calc(100vh - 200px);\n overflow: hidden;\n }\n .long-bb-bottom {\n height: 180px;\n background: linear-gradient(to top, var(--card-bg), transparent);\n margin-top: -180px;\n position:relative;\n z-index: 5;\n }\n</style>\n\n <div style=\"\" data-display-unit=\"\" data-id=\"146443\" data-category-click=\"click\" data-category-impression=\"impression\" data-context-type=\"home\" data-special=\"nothing\" data-article-id=\"\" data-type-of=\"in_house\">\n <div class=\"crayons-card crayons-card--secondary crayons-bb bb-placement js-billboard\" style=\"display: inline-flex; flex-direction: column; align-items: center; margin: 0 auto 2rem auto; width: fit-content; padding: 2rem;\">\n <p style=\"font-weight: bold; margin: 0 0 1rem 0;\">\n \ud83d\udc8e DEV Diamond Sponsors\n </p>\n <p style=\"font-size: 0.8em; margin: 0 0 2rem 0;\">\n Thank you to our Diamond Sponsors for supporting the DEV Community\n </p>\n \n <div style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem;\">\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://aistudio.google.com/?utm_source=partner&utm_medium=partner&utm_campaign=FY25-Global-DEVpartnership-sponsorship-AIS&utm_content=-&utm_term=-&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjlyhbdqehj3akhz166w.png\" alt=\"Google AI - Official AI Model and Platform Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 54px; padding: 10px;\" loading=\"lazy\" width=\"2048\" height=\"472\">\n </a>\n <p style=\"text-align: center;\">Google AI is the official AI Model and Platform Partner of DEV</p>\n </div>\n\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://neon.tech/?ref=devto&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnl88cil6afxzmgwrgtt.png\" alt=\"Neon - Official Database Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Neon is the official database partner of DEV</p>\n </div>\n \n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv30ephnolfvnlwgwm0yz.png\" alt=\"Algolia - Official Search Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Algolia is the official search partner of DEV</p>\n </div>\n </div>\n </div>\n </div>\n\n\n <p class=\"fs-s crayons-footer__description\">\n <a class=\"c-link c-link--branded fw-medium\" aria-label=\"DEV Community Home\" href=\"/\">DEV Community</a> \u2014 A space to discuss and keep up software development and manage your software career\n </p>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/\">\n Home\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/about\">\n About\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/contact\">\n Contact\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"https://mlh.io/\">\n MLH\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/code-of-conduct\">\n Code of Conduct\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/privacy\">\n Privacy Policy\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/terms\">\n Terms of Use\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <div class=\"fs-s\">\n <p>Built on <a class=\"c-link c-link--branded\" target=\"_blank\" rel=\"noopener\" href=\"https://www.forem.com\">Forem</a> \u2014 the <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/opensource\">open source</a> software that powers <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to\">DEV</a> and other inclusive communities.</p>\n <p>Made with love and <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/rails\">Ruby on Rails</a>. DEV Community <span title=\"copyright\">\u00a9</span> 2016 - 2026.</p>\n </div>\n </div>\n</footer>\n<div id=\"snack-zone\"></div>\n\n <div id=\"global-signup-modal\" class=\"authentication-modal hidden\">\n <div class=\"authentication-modal__container\">\n <figure class=\"authentication-modal__image-container\">\n <img class=\"authentication-modal__image\" src=\"https://media2.dev.to/dynamic/image/width=190,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" alt=\"DEV Community\" loading=\"lazy\">\n </figure>\n <div class=\"authentication-modal__content\">\n <p class=\"authentication-modal__description\">\n We're a place where coders share, stay up-to-date and grow their careers.\n </p>\n </div>\n <div class=\"authentication-modal__actions\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"crayons-btn\" aria-label=\"Log in\" data-no-instant=\"\">\n Log in\n </a>\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" class=\"crayons-btn crayons-btn--ghost-brand js-global-signup-modal__create-account\" aria-label=\"Create new account\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n</div>\n\n<script src=\"https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js\" defer=\"defer\"></script>\n\n <div id=\"cookie-consent\"></div>\n <div id=\"reaction-category-resources\" class=\"hidden\" aria-hidden=\"true\">\n <img data-name=\"Like\" data-slug=\"like\" data-position=\"1\" src=\"https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Unicorn\" data-slug=\"unicorn\" data-position=\"2\" src=\"https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Exploding Head\" data-slug=\"exploding_head\" data-position=\"3\" src=\"https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Raised Hands\" data-slug=\"raised_hands\" data-position=\"4\" src=\"https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Fire\" data-slug=\"fire\" data-position=\"5\" src=\"https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg\" width=\"18\" height=\"18\">\n</div>\n\n <script>\n var userSignedIn = false;\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n initAuth();\n } else {\n document.addEventListener('DOMContentLoaded', initAuth);\n }\n\n function initAuth() {\n var paramToken = new URLSearchParams(window.location.search).get('jwt');\n\n if (paramToken && !userSignedIn) {\n authenticateUser(paramToken);\n } else {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = 'https://forem.com/auth_pass/iframe';\n \n document.body.appendChild(iframe);\n \n window.addEventListener('message', function(event) {\n if (event.origin !== 'https://forem.com' && event.origin !== window.location.origin) {\n return;\n }\n \n var data = event.data;\n \n if (data.authenticated && !userSignedIn) {\n authenticateUser(data.token);\n } else if(data.authenticated && window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n action: 'login',\n token: data.token,\n }));\n }\n }); \n }\n\n function authenticateUser(token) {\n fetch('/auth_pass/token_login', {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': getMetaContent('csrf-token'),\n },\n body: JSON.stringify({ token: token }),\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(data) {\n if (data.success) {\n if (document.head.querySelector('meta[name=\"user-signed-in\"][content=\"false\"]')) {\n // Reload the page to update the user's state\n location.reload();\n }\n }\n })\n .catch(function(error) {\n console.error('Error during authentication:', error);\n });\n }\n\n function getMetaContent(name) {\n var element = document.querySelector('meta[name=\"' + name + '\"]');\n return element ? element.getAttribute('content') : '';\n }\n }\n</script>\n\n \n \n \n \n \n<iframe src=\"https://forem.com/auth_pass/iframe\" style=\"display: none;\"></iframe><iframe scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" src=\"https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=https%3A%2F%2Fdev.to\" title=\"Twitter settings iframe\" style=\"display: none;\"></iframe><iframe id=\"rufous-sandbox\" scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" allowfullscreen=\"true\" style=\"position: absolute; visibility: hidden; display: none; width: 0px; height: 0px; padding: 0px; border: none;\" title=\"Twitter analytics iframe\"></iframe></body></html>",
"cookies": null,
"errors": null,
"final_url": "https://dev.to/nicolaerario/comment/fe1e",
"headers": {
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88571",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:43 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100179-CHI",
"x-timer": "S1774089944.558881,VS0,VE2",
"x-xss-protection": "0"
},
"id": null,
"scraper_data": null,
"scraperouter": null,
"screenshot_url": null,
"status_code": 200
}
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Skip to content
Navigation menu [ ](/)
Search [ Powered by Algolia Search
](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)
[ Log in ](https://dev.to/enter?signup_subforem=1) [ Create account
](https://dev.to/enter?signup_subforem=1&state=new-user)
## DEV Community
Close
# Discussion on: Django Cheat Sheet: Keep Credentials Secure with Environment
Variables
[View post](/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-
environment-variables-2ah5)
Collapse Expand
[ ](https://dev.to/nicolaerario)
[ Nicola Erario ](https://dev.to/nicolaerario)
Nicola Erario
[ Nicola Erario ](/nicolaerario)
Follow
* Location
Italy 🇮🇹
* Joined
Oct 18, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe1e)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e)
* * Hide
* * [Report abuse](/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e)
*
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
Like comment: Like comment: 7 likes Like Comment button Reply
Collapse Expand
[ ](https://dev.to/jamestimmins)
[ James Timmins ](https://dev.to/jamestimmins)
James Timmins
[ James Timmins ](/jamestimmins)
Follow
* Joined
Sep 19, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe27)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27)
* * Hide
* * [Report abuse](/report-abuse?url=https://dev.to/jamestimmins/comment/fe27)
*
Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you
can do.
1. Explicitly check for a string value. DEBUG = (os.getenv("DEBUG") == 'true')
2. Cast the val to a boolean DEBUG = bool(os.getenv("DEBUG")), and use an empty string to denote a false value `DEBUG=''`.
3. Use a more fully-featured package like [django-environ](https://github.com/joke2k/django-environ). There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).
Like
<html lang="en" class="js-focus-visible" data-js-focus-visible=""><head>
<meta charset="utf-8">
<title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>
<meta name="description" content="How to use environment variables to keep secure keys out of your code.">
<meta name="keywords" content="software, coding, development, engineering, inclusive, community">
<meta property="og:type" content="article">
<meta property="og:title" content="Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables">
<meta property="og:description" content="How to use environment variables to keep secure keys out of your code.">
<meta property="og:site_name" content="DEV Community">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@thepracticaldev">
<meta name="twitter:creator" content="@">
<meta name="twitter:title" content="Django Cheat Sheet: Keep Credentials Secure with Environment Variables">
<meta name="twitter:description" content="How to use environment variables to keep secure keys out of your code.">
<link rel="canonical" href="https://dev.to/nicolaerario/comment/fe1e">
<meta property="og:url" content="https://dev.to/nicolaerario/comment/fe1e">
<meta property="og:title" content="How do you manage Boolean with python-dotenv? I... — DEV Community">
<meta name="twitter:title" content="How do you manage Boolean with python-dotenv? I... — DEV Community">
<meta property="og:image" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg">
<meta name="twitter:image:src" content="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg">
<meta name="last-updated" content="2026-03-20 10:09:32 UTC">
<meta name="user-signed-in" content="false">
<meta name="head-cached-at" content="1774001372">
<meta name="environment" content="production">
<link rel="stylesheet" href="https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css" media="all" id="main-minimal-stylesheet">
<link rel="stylesheet" href="https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css" media="all" id="main-views-stylesheet">
<link rel="stylesheet" href="https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css" media="all" id="main-crayons-stylesheet">
<script src="https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js" defer="defer"></script>
<meta name="search-script" content="https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<link rel="icon" type="image/x-icon" href="https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link rel="apple-touch-icon" sizes="167x167" href="https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<link href="https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" rel="icon" sizes="192x192">
<link href="https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" rel="icon" sizes="128x128">
<meta name="apple-mobile-web-app-title" content="dev.to">
<meta name="application-name" content="dev.to">
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
<link rel="search" href="https://dev.to/open-search.xml" type="application/opensearchdescription+xml" title="DEV Community">
<meta property="forem:name" content="DEV Community">
<meta property="forem:logo" content="https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png">
<meta property="forem:domain" content="dev.to">
<script src="//www.googletagmanager.com/gtag/js?id=G-TYEM8Y3JN3" async=""></script><meta name="csrf-param" content="authenticity_token"><meta name="csrf-token" content="CToQ3LFkEOX7xPcWAYxNtiOCparVBTLuEhDoDC9Dc82rxQmA5686Bd9MNYpf0AMiyjvqSFvMLgjpDUmaBSji5w"></head>
<body class="sans-serif-article-body default-header" data-user-status="logged-out" data-is-root-subforem="false" data-subforem-id="1" data-side-nav-visible="false" data-community-name="DEV Community" data-subscription-icon="https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png" data-locale="en" data-honeybadger-key="hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr" data-deployed-at="2026-03-19T20:49:25Z" data-latest-commit-id="f47ae62cb2f25a529b1137abf7975d0e86324bf1" data-ga-tracking="UA-71991109-1" data-cookie-banner-user-context="logged_out_only" data-cookie-banner-platform-context="off" data-algolia-id="PRSOBFP46H" data-algolia-search-key="9aa7d31610cba78851c9b1f63776a9dd" data-algolia-display="true" data-dynamic-url-component="bmar11" data-ga4-tracking-id="G-TYEM8Y3JN3" data-runtime="Browser-Linux" data-follow-handler-initialized="true" data-loaded="true">
<script>
if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {
document.body.classList.add("hidden-shell");
}
if (new Date() > new Date("2026-02-04T09:00:00-05:00")) {
document.body.dataset.sideNavVisible = "false";
}
</script>
<link rel="stylesheet" href="https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css" media="all" id="secondary-minimal-stylesheet">
<link rel="stylesheet" href="https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css" media="all" id="secondary-views-stylesheet">
<link rel="stylesheet" href="https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css" media="all" id="secondary-crayons-stylesheet">
<div id="body-styles">
<style>
:root {
--accent-brand-lighter-rgb: 80, 99, 301;
--accent-brand-rgb: 59, 73, 223;
--accent-brand-darker-rgb: 47, 58, 178;
}
</style>
</div>
<div id="audiocontent" data-podcast="">
</div>
<div class="navigation-progress" id="navigation-progress"></div>
<header id="topbar" class="crayons-header topbar print-hidden">
<span id="route-change-target" tabindex="-1"></span>
<a href="#main-content" class="skip-content-link">Skip to content</a>
<div class="crayons-header__container">
<span class="inline-block m:hidden ">
<button class="c-btn c-btn--icon-alone js-hamburger-trigger mx-2">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a9syj4ev9usghrj2cupgvw6aabjusk1t" class="crayons-icon"><title id="a9syj4ev9usghrj2cupgvw6aabjusk1t">Navigation menu</title>
<path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"></path>
</svg>
</button>
</span>
<a href="/" class="site-logo" aria-label="DEV Community Home">
<img class="site-logo__img" src="https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png" style="aspect-ratio: 10 / 8" alt="DEV Community">
</a>
<div class="crayons-header--search js-search-form" id="header-search">
<form accept-charset="UTF-8" method="get" action="/search" role="search">
<div class="crayons-fields crayons-fields--horizontal">
<div class="crayons-field flex-1 relative">
<input id="search-input" class="crayons-header--search-input crayons-textfield js-search-input" type="text" name="q" placeholder="Find related posts..." autocomplete="off">
<button type="submit" aria-label="Search" class="c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="asynyx1qxw5bjg880ehhj6dhqa8iosdc" aria-hidden="true" class="crayons-icon"><title id="asynyx1qxw5bjg880ehhj6dhqa8iosdc">Search</title>
<path d="M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z"></path>
</svg>
</button>
<a class="crayons-header--search-brand-indicator" href="https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral" target="_blank" rel="noopener noreferrer">
Powered by Algolia
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" width="24" height="24" viewBox="0 0 500 500.34" role="img" aria-labelledby="amiqq4aj0vjjtdk14z4cq9fy0cjejhz5" aria-hidden="true" class="crayons-icon"><title id="amiqq4aj0vjjtdk14z4cq9fy0cjejhz5">Search</title>
<defs></defs><path class="cls-1" d="M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z"></path>
</svg>
</a>
</div>
</div>
</form>
</div>
<div class="flex items-center h-100 ml-auto">
<div class="flex" id="authentication-top-nav-actions">
<span class="hidden m:block">
<a href="https://dev.to/enter?signup_subforem=1" class="c-link c-link--block mr-2 whitespace-nowrap ml-auto" data-no-instant="">
Log in
</a>
</span>
<a href="https://dev.to/enter?signup_subforem=1&state=new-user" data-tracking-id="ca_top_nav" data-tracking-source="top_navbar" class="c-cta c-cta--branded whitespace-nowrap mr-2" data-no-instant="">
Create account
</a>
</div>
</div>
</div>
</header>
<div class="hamburger">
<div class="hamburger__content">
<header class="hamburger__content__header">
<h2 class="fs-l fw-bold flex-1 break-word lh-tight">DEV Community</h2>
<button class="c-btn c-btn--icon-alone js-hamburger-trigger shrink-0" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7jqca81wlh4sunhyocm20yteah4aqdu" aria-hidden="true" class="crayons-icon c-btn__icon"><title id="a7jqca81wlh4sunhyocm20yteah4aqdu">Close</title><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z"></path></svg>
</button>
</header>
<div class="p-2 js-navigation-links-container" id="authentication-hamburger-actions">
</div>
</div>
<div class="hamburger__overlay js-hamburger-trigger"></div>
</div>
<div id="active-broadcast" class="broadcast-wrapper"></div>
<div id="page-content" class="wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760" data-current-page="comments-index">
<div id="page-content-inner" data-internal-nav="false">
<div id="page-route-change" class="screen-reader-only" aria-live="polite" aria-atomic="true"></div>
<script src="https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js" defer="defer"></script>
<script src="https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js" defer="defer"></script>
<div class="crayons-layout crayons-layout--limited-l gap-0" data-follow-button-container="true">
<span id="comment-article-indicator" data-article-id="172117"></span>
<div id="response-templates-data" class="hidden"></div>
<script src="https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js" defer="defer"></script>
<header class="p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0">
<h1 class="crayons-subtitle-1 mb-4">
<span class="fw-normal color-base-60">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>
</h1>
<div class="flex">
<a class="crayons-btn crayons-btn--outlined mr-2" href="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5">View post</a>
</div>
</header>
<section class="crayons-card text-padding min-w-0 z-elevate" id="comments-container" data-commentable-id="172117" data-commentable-type="Article" data-commentable-author-id="102760" data-commentable-co-author-ids="">
<div class="comments" id="comment-trees-container">
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-0
root
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="m:mx-1 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="am0hfruw7t7kbloxq90gm2u9chkb8rff" class="crayons-icon expanded"><title id="am0hfruw7t7kbloxq90gm2u9chkb8rff">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a60pbxfju0t7z027ra8mfcb5i35wrg6s" class="crayons-icon collapsed"><title id="a60pbxfju0t7z027ra8mfcb5i35wrg6s">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-273144" class="
comment single-comment-node
root
comment--deep-0
" data-comment-id="273144" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e" data-comment-author-id="108601" data-content-user-id="108601">
<a name="comment-fe1e" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/nicolaerario" class="shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" alt="nicolaerario profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/nicolaerario" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Nicola Erario
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-273144" aria-controls="comment-profile-preview-content-273144" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Nicola Erario profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
Nicola Erario
</button>
<div id="comment-profile-preview-content-273144" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #160533; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/nicolaerario" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Nicola Erario
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":108601,"name":"Nicola Erario"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Nicola Erario" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
Italy 🇮🇹
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-10-18T15:20:33Z" class="date">Oct 18, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-17T18:02:26Z" class="date-short-year" title="Tuesday, September 17, 2019 at 6:02:26 PM">Sep 17 '19</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-273144" aria-controls="comment-dropdown-273144" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="akgq3k15dqu49j2fytbaaltxd0kpvll8" class="crayons-icon pointer-events-none"><title id="akgq3k15dqu49j2fytbaaltxd0kpvll8">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-273144" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Nicola Erario's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="108601" data-action="settings-button" data-path="https://dev.to/nicolaerario/comment/fe1e/settings" aria-label="Go to Nicola Erario's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="108601">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="273144" data-comment-url="https://dev.to/nicolaerario/comment/fe1e" aria-label="Hide Nicola Erario's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/nicolaerario/comment/fe1e/mod" aria-label="Moderate Nicola Erario's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e" aria-label="Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>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</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-273144" data-comment-id="273144" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 9;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3btu01xca2urgip0ej7lt2tshj6bs28" class="crayons-icon reaction-icon not-reacted"><title id="a3btu01xca2urgip0ej7lt2tshj6bs28">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a207ojso91c7liu3pwqmlfkjddpc2zco" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a207ojso91c7liu3pwqmlfkjddpc2zco">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-273144">7</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="273144" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e" data-tracking-name="comment_reply_button" data-testid="reply-button-273144" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ahwvmev4joq47o1xnqyy2hn24vhmxtb4" class="crayons-icon reaction-icon not-reacted"><title id="ahwvmev4joq47o1xnqyy2hn24vhmxtb4">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="amu86j05tb5rto5dwbol17xfyeew32qd" class="crayons-icon expanded"><title id="amu86j05tb5rto5dwbol17xfyeew32qd">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="agcra525od8yaymvu4prqj30npmizg4n" class="crayons-icon collapsed"><title id="agcra525od8yaymvu4prqj30npmizg4n">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-273163" class="
comment single-comment-node
child
comment--deep-1
" data-comment-id="273163" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27" data-comment-author-id="102760" data-content-user-id="102760">
<a name="comment-fe27" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/jamestimmins" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg" alt="jamestimmins profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/jamestimmins" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
James Timmins
</span>
<span class="crayons-hover-tooltip inline-block spec-op-author -mr-2" data-tooltip="Author">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" class="crayons-icon">
<path d="M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z"></path>
</svg>
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-273163" aria-controls="comment-profile-preview-content-273163" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="James Timmins profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
James Timmins
</button>
<div id="comment-profile-preview-content-273163" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #002a9e; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/jamestimmins" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
James Timmins
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":102760,"name":"James Timmins"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: James Timmins" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-09-19T16:58:25Z" class="date">Sep 19, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
<span class="crayons-hover-tooltip inline-block spec-op-author -ml-2" data-tooltip="Author">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" class="crayons-icon">
<path d="M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z"></path>
</svg>
</span>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-17T18:29:14Z" class="date-short-year" title="Tuesday, September 17, 2019 at 6:29:14 PM">Sep 17 '19</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-273163" aria-controls="comment-dropdown-273163" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7gmp3o0mt8lu9t1omyan1swl0w3k035" class="crayons-icon pointer-events-none"><title id="a7gmp3o0mt8lu9t1omyan1swl0w3k035">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-273163" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to James Timmins's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="102760" data-action="settings-button" data-path="https://dev.to/jamestimmins/comment/fe27/settings" aria-label="Go to James Timmins's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="102760">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="273163" data-comment-url="https://dev.to/jamestimmins/comment/fe27" aria-label="Hide James Timmins's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/jamestimmins/comment/fe27/mod" aria-label="Moderate James Timmins's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/jamestimmins/comment/fe27" aria-label="Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/jamestimmins/comment/fe27" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>
<ol>
<li>Explicitly check for a string value. DEBUG = (os.getenv("DEBUG") == 'true')</li>
<li>Cast the val to a boolean DEBUG = bool(os.getenv("DEBUG")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>
<li>Use a more fully-featured package like <a href="https://github.com/joke2k/django-environ" rel="nofollow">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>
</ol>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-273163" data-comment-id="273163" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 8;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="acgeuroqpao89v1gqag5tnag1lzjbopd" class="crayons-icon reaction-icon not-reacted"><title id="acgeuroqpao89v1gqag5tnag1lzjbopd">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="alpwyiy7hd86mwy98dvfifgf6axh83az" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="alpwyiy7hd86mwy98dvfifgf6axh83az">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-273163">7</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="273163" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27" data-tracking-name="comment_reply_button" data-testid="reply-button-273163" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a37arejzrbksr1ryfcmai2lxbi18wfv9" class="crayons-icon reaction-icon not-reacted"><title id="a37arejzrbksr1ryfcmai2lxbi18wfv9">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ad4sa0cqju63trsnkxpdxa4f4dsoh3yn" class="crayons-icon expanded"><title id="ad4sa0cqju63trsnkxpdxa4f4dsoh3yn">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a3npi4krrvgdd27bjdm7498cnrep1iw0" class="crayons-icon collapsed"><title id="a3npi4krrvgdd27bjdm7498cnrep1iw0">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-359014" class="
comment single-comment-node
child
comment--deep-2
" data-comment-id="359014" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26" data-comment-author-id="119873" data-content-user-id="119873">
<a name="comment-kb26" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/bhupesh" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg" alt="bhupesh profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/bhupesh" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Bhupesh Varshney 👾
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-359014" aria-controls="comment-profile-preview-content-359014" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Bhupesh Varshney 👾 profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
Bhupesh Varshney 👾
</button>
<div id="comment-profile-preview-content-359014" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #0000bc; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/bhupesh" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Bhupesh Varshney 👾
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney 👾"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Bhupesh Varshney 👾" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Email
</div>
<div class="value">
<a href="mailto:"></a>
</div>
</li>
<li>
<div class="key">
Location
</div>
<div class="value">
New Delhi, India 🇮🇳
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-12-05T15:02:51Z" class="date">Dec 5, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2020-01-16T08:59:45Z" class="date-short-year" title="Thursday, January 16, 2020 at 8:59:45 AM">Jan 16 '20</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-359014" aria-controls="comment-dropdown-359014" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="adnjyxwg4pvhdki3fg0akoitopv6pfg1" class="crayons-icon pointer-events-none"><title id="adnjyxwg4pvhdki3fg0akoitopv6pfg1">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-359014" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Bhupesh Varshney 👾's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="119873" data-action="settings-button" data-path="https://dev.to/bhupesh/comment/kb26/settings" aria-label="Go to Bhupesh Varshney 👾's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="119873">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="359014" data-comment-url="https://dev.to/bhupesh/comment/kb26" aria-label="Hide Bhupesh Varshney 👾's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/bhupesh/comment/kb26/mod" aria-label="Moderate Bhupesh Varshney 👾's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/bhupesh/comment/kb26" aria-label="Report Bhupesh Varshney 👾's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/bhupesh/comment/kb26" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>thanks for this</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-359014" data-comment-id="359014" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 7;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aaqd7b0m9ebsm08ygyp5ap1r776nxmue" class="crayons-icon reaction-icon not-reacted"><title id="aaqd7b0m9ebsm08ygyp5ap1r776nxmue">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ab3h6paxnc5enxpz5190u3riq9y1tkc4" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="ab3h6paxnc5enxpz5190u3riq9y1tkc4">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-359014">1</span><span class="reactions-label hidden m:inline-block"> like</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="359014" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26" data-tracking-name="comment_reply_button" data-testid="reply-button-359014" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aceqw4gqgqb3jxi544mvbyzdyyv9psv4" class="crayons-icon reaction-icon not-reacted"><title id="aceqw4gqgqb3jxi544mvbyzdyyv9psv4">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7qkh3osze31p5tx1sa37ss9h410885k" class="crayons-icon expanded"><title id="a7qkh3osze31p5tx1sa37ss9h410885k">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ap76c9hto972y44k19vq49h1o4ipe73a" class="crayons-icon collapsed"><title id="ap76c9hto972y44k19vq49h1o4ipe73a">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-1107596" class="
comment single-comment-node
child
comment--deep-1
" data-comment-id="1107596" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm" data-comment-author-id="1215611" data-content-user-id="1215611">
<a name="comment-2b0bm" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/eftehassanpp" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png" alt="eftehassanpp profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/eftehassanpp" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
eftehassanpp
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1107596" aria-controls="comment-profile-preview-content-1107596" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="eftehassanpp profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
eftehassanpp
</button>
<div id="comment-profile-preview-content-1107596" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/eftehassanpp" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
eftehassanpp
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: eftehassanpp" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="color-base-70">
Full stack Web Developer
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2023-11-21T21:33:36Z" class="date">Nov 21, 2023</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2023-11-21T21:37:14Z" class="date-short-year" title="Tuesday, November 21, 2023 at 9:37:14 PM">Nov 21 '23</time>
<span class="hidden m:inline-block">• Edited on <time datetime="2023-11-21T21:37:49Z" class="date-no-year" title="Tuesday, November 21, 2023 at 9:37:49 PM">Nov 21</time></span>
<span class="m:hidden">• Edited</span>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1107596" aria-controls="comment-dropdown-1107596" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="anqysk9wz3k463ox4nph62xear0d3p4w" class="crayons-icon pointer-events-none"><title id="anqysk9wz3k463ox4nph62xear0d3p4w">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1107596" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to eftehassanpp's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="1215611" data-action="settings-button" data-path="https://dev.to/eftehassanpp/comment/2b0bm/settings" aria-label="Go to eftehassanpp's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="1215611">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="1107596" data-comment-url="https://dev.to/eftehassanpp/comment/2b0bm" aria-label="Hide eftehassanpp's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/eftehassanpp/comment/2b0bm/mod" aria-label="Moderate eftehassanpp's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm" aria-label="Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>
<strong>import json</strong><br>
<strong>DEBUG = json.loads(os.getenv("DEBUG"))<br>
if DEBUG:<br>
print("Debugging")</strong></p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-1107596" data-comment-id="1107596" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 6;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ahjjbveswr6gcaqryfz4gyd2zgdwm4ze" class="crayons-icon reaction-icon not-reacted"><title id="ahjjbveswr6gcaqryfz4gyd2zgdwm4ze">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="abwchupp63so33156spria10r4l8m637" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="abwchupp63so33156spria10r4l8m637">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count hidden">0</span><span class="reactions-label hidden m:inline-block"></span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="1107596" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm" data-tracking-name="comment_reply_button" data-testid="reply-button-1107596" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a3k1um56f8mzdqx2wg98m4ysf5jotnf5" class="crayons-icon reaction-icon not-reacted"><title id="a3k1um56f8mzdqx2wg98m4ysf5jotnf5">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a90ink3joapm9ddh1hq32wcrnt0gvn71" class="crayons-icon expanded"><title id="a90ink3joapm9ddh1hq32wcrnt0gvn71">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a2qx85oskkj1aic7osf7czppfjrosxg3" class="crayons-icon collapsed"><title id="a2qx85oskkj1aic7osf7czppfjrosxg3">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-274947" class="
comment single-comment-node
child
comment--deep-1
" data-comment-id="274947" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin" data-comment-author-id="230500" data-content-user-id="230500">
<a name="comment-fgin" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/anshsaini" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg" alt="anshsaini profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/anshsaini" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Ansh Saini
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-274947" aria-controls="comment-profile-preview-content-274947" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Ansh Saini profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
Ansh Saini
</button>
<div id="comment-profile-preview-content-274947" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #aaa1e0; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/anshsaini" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Ansh Saini
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":230500,"name":"Ansh Saini"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Ansh Saini" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="color-base-70">
Here to share my knowledge and learn new things, then share those as well.
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
New Delhi, India
</div>
</li>
<li>
<div class="key">
Education
</div>
<div class="value">
Bachelor's Degree in Computer Science
</div>
</li>
<li>
<div class="key">
Work
</div>
<div class="value">
Software Development Manager at Suraasa
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2019-09-16T11:14:42Z" class="date">Sep 16, 2019</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-19T18:08:31Z" class="date-short-year" title="Thursday, September 19, 2019 at 6:08:31 PM">Sep 19 '19</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-274947" aria-controls="comment-dropdown-274947" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ajnrdgcw29lhl494uqrcvs642eq8pcfs" class="crayons-icon pointer-events-none"><title id="ajnrdgcw29lhl494uqrcvs642eq8pcfs">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-274947" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Ansh Saini's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="230500" data-action="settings-button" data-path="https://dev.to/anshsaini/comment/fgin/settings" aria-label="Go to Ansh Saini's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="230500">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="274947" data-comment-url="https://dev.to/anshsaini/comment/fgin" aria-label="Hide Ansh Saini's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/anshsaini/comment/fgin/mod" aria-label="Moderate Ansh Saini's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/anshsaini/comment/fgin" aria-label="Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/anshsaini/comment/fgin" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-274947" data-comment-id="274947" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 5;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="ajn1movjhp9pjktahx5eie34nb5xkz92" class="crayons-icon reaction-icon not-reacted"><title id="ajn1movjhp9pjktahx5eie34nb5xkz92">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="afu01rt9305glx5lva9zn1eoy3gmcvv8" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="afu01rt9305glx5lva9zn1eoy3gmcvv8">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-274947">2</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="274947" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin" data-tracking-name="comment_reply_button" data-testid="reply-button-274947" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="asi6g1r8jhe0pamnlr7xyglvrmazj0ta" class="crayons-icon reaction-icon not-reacted"><title id="asi6g1r8jhe0pamnlr7xyglvrmazj0ta">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a937zwu2zlm2i1loif46c4ce0g8yvgeb" class="crayons-icon expanded"><title id="a937zwu2zlm2i1loif46c4ce0g8yvgeb">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="atrycgt3bqhom1hcs1p3jm4bkt5ix4ra" class="crayons-icon collapsed"><title id="atrycgt3bqhom1hcs1p3jm4bkt5ix4ra">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-274987" class="
comment single-comment-node
child
comment--deep-2
" data-comment-id="274987" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb" data-comment-author-id="108601" data-content-user-id="108601">
<a name="comment-fgkb" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/nicolaerario" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" alt="nicolaerario profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/nicolaerario" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Nicola Erario
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-274987" aria-controls="comment-profile-preview-content-274987" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Nicola Erario profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
Nicola Erario
</button>
<div id="comment-profile-preview-content-274987" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #160533; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/nicolaerario" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Nicola Erario
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":108601,"name":"Nicola Erario"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Nicola Erario" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Location
</div>
<div class="value">
Italy 🇮🇹
</div>
</li>
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2018-10-18T15:20:33Z" class="date">Oct 18, 2018</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2019-09-19T19:03:55Z" class="date-short-year" title="Thursday, September 19, 2019 at 7:03:55 PM">Sep 19 '19</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-274987" aria-controls="comment-dropdown-274987" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ascp2zgq843l3hjiwbkueo1hyk2e9y4r" class="crayons-icon pointer-events-none"><title id="ascp2zgq843l3hjiwbkueo1hyk2e9y4r">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-274987" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Nicola Erario's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="108601" data-action="settings-button" data-path="https://dev.to/nicolaerario/comment/fgkb/settings" aria-label="Go to Nicola Erario's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="108601">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="274987" data-comment-url="https://dev.to/nicolaerario/comment/fgkb" aria-label="Hide Nicola Erario's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/nicolaerario/comment/fgkb/mod" aria-label="Moderate Nicola Erario's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb" aria-label="Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Sure! After time spent to True this, False that... and your app lives of it’s own life </p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-274987" data-comment-id="274987" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 4;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a90c9akrxlwhzqlm6zbh2cl437mm8m4w" class="crayons-icon reaction-icon not-reacted"><title id="a90c9akrxlwhzqlm6zbh2cl437mm8m4w">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7u21cjq73ezwmhylwvn3maoxmjb805x" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a7u21cjq73ezwmhylwvn3maoxmjb805x">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-274987">2</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="274987" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb" data-tracking-name="comment_reply_button" data-testid="reply-button-274987" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aqbnn7m38ze35s566cpzbxp8zc67xkyj" class="crayons-icon reaction-icon not-reacted"><title id="aqbnn7m38ze35s566cpzbxp8zc67xkyj">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-1
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ab4azljunvkclho839543mrgdhe8uanf" class="crayons-icon expanded"><title id="ab4azljunvkclho839543mrgdhe8uanf">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a18zu1yfzvcynrxsx4j1npp6npq3sdl7" class="crayons-icon collapsed"><title id="a18zu1yfzvcynrxsx4j1npp6npq3sdl7">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-712982" class="
comment single-comment-node
child
comment--deep-1
" data-comment-id="712982" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia" data-comment-author-id="201500" data-content-user-id="201500">
<a name="comment-1eeia" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/guettli" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg" alt="guettli profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/guettli" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
Thomas Güttler
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-712982" aria-controls="comment-profile-preview-content-712982" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="Thomas Güttler profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
Thomas Güttler
</button>
<div id="comment-profile-preview-content-712982" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #002a9e; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/guettli" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
Thomas Güttler
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":201500,"name":"Thomas Güttler"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: Thomas Güttler" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2019-07-25T13:33:46Z" class="date">Jul 25, 2019</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2021-05-13T19:37:19Z" class="date-short-year" title="Thursday, May 13, 2021 at 7:37:19 PM">May 13 '21</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-712982" aria-controls="comment-dropdown-712982" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a7alnuoz5ampzvua5h7ww511cbk31t1c" class="crayons-icon pointer-events-none"><title id="a7alnuoz5ampzvua5h7ww511cbk31t1c">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-712982" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to Thomas Güttler's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="201500" data-action="settings-button" data-path="https://dev.to/guettli/comment/1eeia/settings" aria-label="Go to Thomas Güttler's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="201500">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="712982" data-comment-url="https://dev.to/guettli/comment/1eeia" aria-label="Hide Thomas Güttler's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/guettli/comment/1eeia/mod" aria-label="Moderate Thomas Güttler's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/guettli/comment/1eeia" aria-label="Report Thomas Güttler's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/guettli/comment/1eeia" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>Don't ask my why the author did not accept my PR: <a href="https://github.com/theskumar/python-dotenv/pull/293/files" rel="nofollow noopener noreferrer" target="_blank">github.com/theskumar/python-dotenv...</a></p>
<h3>
<a name="converting-types" href="#converting-types">
</a>
Converting types
</h3>
<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>
<p>Example:<br>
</p>
<div class="highlight js-code-highlight">
<pre class="highlight python"><code><span class="kn">from</span> <span class="n">distutils.util</span> <span class="kn">import</span> <span class="n">strtobool</span>
<span class="n">DEBUG</span> <span class="o">=</span> <span class="nf">bool</span><span class="p">(</span><span class="nf">strtobool</span><span class="p">(</span><span class="n">os</span><span class="p">.</span><span class="nf">getenv</span><span class="p">(</span><span class="sh">'</span><span class="s">DEBUG</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">True</span><span class="sh">'</span><span class="p">)))</span>
</code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>Enter fullscreen mode</title>
<path d="M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-off"><title>Exit fullscreen mode</title>
<path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"></path>
</svg>
</div>
</div>
</div>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-712982" data-comment-id="712982" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 3;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a1mk97ycs93jegn3xavxhb8xfgsfkw3d" class="crayons-icon reaction-icon not-reacted"><title id="a1mk97ycs93jegn3xavxhb8xfgsfkw3d">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="amicadhcf0ecg45qix2h8bneakx329li" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="amicadhcf0ecg45qix2h8bneakx329li">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-712982">4</span><span class="reactions-label hidden m:inline-block"> likes</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="712982" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia" data-tracking-name="comment_reply_button" data-testid="reply-button-712982" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="aix6zq952ei8477ykobai8errhmtgk28" class="crayons-icon reaction-icon not-reacted"><title id="aix6zq952ei8477ykobai8errhmtgk28">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="at7u3o4n8y9ewox1cowczmwqf7t9xj8e" class="crayons-icon expanded"><title id="at7u3o4n8y9ewox1cowczmwqf7t9xj8e">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="aqqgamrqupo07w83avfsaypdfc38f2h8" class="crayons-icon collapsed"><title id="aqqgamrqupo07w83avfsaypdfc38f2h8">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-1322245" class="
comment single-comment-node
child
comment--deep-2
" data-comment-id="1322245" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf" data-comment-author-id="2562290" data-content-user-id="2562290">
<a name="comment-2n5pf" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/derrick_k_429f36beeddff99" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg" alt="derrick_k_429f36beeddff99 profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/derrick_k_429f36beeddff99" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
derrick k
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1322245" aria-controls="comment-profile-preview-content-1322245" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="derrick k profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
derrick k
</button>
<div id="comment-profile-preview-content-1322245" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/derrick_k_429f36beeddff99" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
derrick k
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":2562290,"name":"derrick k"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: derrick k" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2024-12-12T14:19:12Z" class="date">Dec 12, 2024</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2025-04-19T04:12:37Z" class="date-short-year" title="Saturday, April 19, 2025 at 4:12:37 AM">Apr 19 '25</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1322245" aria-controls="comment-dropdown-1322245" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="ah7e12qgpvpgv7lg5h12h1hg8gsc35dy" class="crayons-icon pointer-events-none"><title id="ah7e12qgpvpgv7lg5h12h1hg8gsc35dy">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1322245" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to derrick k's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="2562290" data-action="settings-button" data-path="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings" aria-label="Go to derrick k's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="2562290">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="1322245" data-comment-url="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf" aria-label="Hide derrick k's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod" aria-label="Moderate derrick k's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf" aria-label="Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>I agree, it works perfectly</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-1322245" data-comment-id="1322245" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 2;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a6w8iq5f90v5v8mu1tvdl5prq64nfxzn" class="crayons-icon reaction-icon not-reacted"><title id="a6w8iq5f90v5v8mu1tvdl5prq64nfxzn">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="a2jrd7kzxnp7are2sy91mt0g2y1op9e2" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="a2jrd7kzxnp7are2sy91mt0g2y1op9e2">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count" id="reactions-count-1322245">1</span><span class="reactions-label hidden m:inline-block"> like</span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="1322245" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf" data-tracking-name="comment_reply_button" data-testid="reply-button-1322245" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a71tibt5ws2dqqc3quhiva4b5wgoo31c" class="crayons-icon reaction-icon not-reacted"><title id="a71tibt5ws2dqqc3quhiva4b5wgoo31c">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
<details class="comment-wrapper js-comment-wrapper comment-wrapper--deep-2
child
" open="">
<summary aria-label="Toggle this comment (and replies)" data-tracking-name="expand_comment_toggle">
<span class="mx-0 inline-block align-middle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="abi2ffrim2fmctcrxzumsbpv3ppxw8hx" class="crayons-icon expanded"><title id="abi2ffrim2fmctcrxzumsbpv3ppxw8hx">Collapse</title>
<path d="M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="atcipprtb6yh2byyphfnhsbchu8x18k0" class="crayons-icon collapsed"><title id="atcipprtb6yh2byyphfnhsbchu8x18k0">Expand</title>
<path d="M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z"></path>
</svg>
</span>
<span class="js-collapse-comment-content inline-block align-middle"></span>
</summary>
<div id="comment-node-1228782" class="
comment single-comment-node
child
comment--deep-2
" data-comment-id="1228782" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim" data-comment-author-id="1625827" data-content-user-id="1625827">
<a name="comment-2hnim" style="position: absolute; top: -8px;"> </a>
<div class="comment__inner">
<a href="https://dev.to/niceguydave" class="shrink-0 crayons-avatar mt-4">
<img class="crayons-avatar__image" width="32" height="32" src="https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg" alt="niceguydave profile image" loading="lazy">
</a>
<div class="inner-comment comment__details">
<div class="comment__content crayons-card">
<div class="comment__header">
<a href="https://dev.to/niceguydave" class="crayons-link crayons-link--secondary flex items-center fw-medium m:hidden">
<span class="js-comment-username">
David Talbot
</span>
</a>
<div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block">
<button id="comment-profile-preview-trigger-1228782" aria-controls="comment-profile-preview-content-1228782" class="profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost" aria-label="David Talbot profile details" aria-expanded="false" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
David Talbot
</button>
<div id="comment-profile-preview-content-1228782" class="profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown" style="--card-color: #000000; border-top-color: var(--card-color);" data-testid="profile-preview-card" data-repositioning-dropdown="true">
<div class="gap-4 grid">
<div class="-mt-4">
<a href="/niceguydave" class="flex">
<span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0">
<img src="https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg" class="crayons-avatar__image" alt="" loading="lazy">
</span>
<span class="crayons-link crayons-subtitle-2 mt-5">
David Talbot
</span>
</a>
</div>
<div class="print-hidden">
<button name="button" type="button" data-info="{"className":"User","style":"","id":1625827,"name":"David Talbot"}" class="crayons-btn follow-action-button whitespace-nowrap w-100 follow-user" aria-label="Follow user: David Talbot" aria-pressed="false" data-fetched="fetched">Follow</button>
</div>
<div class="user-metadata-details">
<ul class="user-metadata-details-inner">
<li>
<div class="key">
Joined
</div>
<div class="value">
<time datetime="2024-06-14T12:03:32Z" class="date">Jun 14, 2024</time>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="color-base-30 px-2 m:pl-0" role="presentation">•</span>
<a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim" class="comment-date crayons-link crayons-link--secondary fs-s">
<time datetime="2024-09-04T09:09:28Z" class="date-short-year" title="Wednesday, September 4, 2024 at 9:09:28 AM">Sep 4 '24</time>
</a>
<div class="comment__dropdown" data-tracking-name="comment_dropdown">
<button id="comment-dropdown-trigger-1228782" aria-controls="comment-dropdown-1228782" aria-expanded="false" class="dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon " aria-label="Toggle dropdown menu" aria-haspopup="true" data-dropdown-initialized="true" data-initialized="true">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="aclks2g2l2bow740sya6k4kff7mjsiuv" class="crayons-icon pointer-events-none"><title id="aclks2g2l2bow740sya6k4kff7mjsiuv">Dropdown menu</title>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
</svg>
</button>
<div id="comment-dropdown-1228782" class="crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown">
<ul class="m-0">
<li><a href="https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim" class="crayons-link crayons-link--block permalink-copybtn" aria-label="Copy link to David Talbot's comment" data-no-instant="">Copy link</a></li>
<li class="comment-actions hidden" data-user-id="1625827" data-action="settings-button" data-path="https://dev.to/niceguydave/comment/2hnim/settings" aria-label="Go to David Talbot's comment settings"></li>
<li class="comment-actions hidden" data-action="hide-button" data-commentable-user-id="102760" data-user-id="1625827">
<button class="flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment" data-hide-type="hide" data-comment-id="1228782" data-comment-url="https://dev.to/niceguydave/comment/2hnim" aria-label="Hide David Talbot's comment">
Hide
</button>
</li>
<li class="mod-actions hidden mod-actions-comment-button" data-path="https://dev.to/niceguydave/comment/2hnim/mod" aria-label="Moderate David Talbot's comment"></li>
<li class="report-abuse-link-wrapper" data-path="/report-abuse?url=https://dev.to/niceguydave/comment/2hnim" aria-label="Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions"><a href="/report-abuse?url=https://dev.to/niceguydave/comment/2hnim" class="crayons-link crayons-link--block">Report abuse</a></li>
<li class="current-user-actions"></li>
</ul>
</div>
</div>
</div>
<div class="
comment__body
text-styles
text-styles--secondary
body
">
<p>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.</p>
</div>
</div>
<script>
</script>
<footer class="comment__footer print-hidden">
<button class="crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button" id="button-for-comment-1228782" data-comment-id="1228782" aria-label="like" data-tracking-name="comment_heart_button" aria-pressed="false" style="z-index: 1;">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="al2238nmtzvbhzqi2yywrpxgjdejg8pi" class="crayons-icon reaction-icon not-reacted"><title id="al2238nmtzvbhzqi2yywrpxgjdejg8pi">Like comment: </title><path d="M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-labelledby="apba72bjxcxsgi9yze6l7sl4vednujll" class="crayons-icon crayons-icon reaction-icon--like reaction-icon reacted"><title id="apba72bjxcxsgi9yze6l7sl4vednujll">Like comment: </title>
<path d="M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z"></path>
</svg>
<span class="reactions-count hidden">0</span><span class="reactions-label hidden m:inline-block"></span>
<span data-testid="tooltip" class="crayons-tooltip__content">
Like
</span>
</button>
<button class="actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex" data-comment-id="1228782" data-path="/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim" data-tracking-name="comment_reply_button" data-testid="reply-button-1228782" rel="nofollow">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" role="img" aria-labelledby="a310ex3qenwsd4ez2fili98qg92olabo" class="crayons-icon reaction-icon not-reacted"><title id="a310ex3qenwsd4ez2fili98qg92olabo">Comment button</title><path d="M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z"></path></svg>
<span class="hidden m:inline-block">Reply</span>
</button>
</footer>
</div>
</div>
</div>
</details>
</div>
</details>
</div>
</details>
</div>
</section>
<div class="py-6">
<nav class="fs-s align-center block" aria-label="Conduct controls">
<a href="/code-of-conduct" class="crayons-link crayons-link--secondary">Code of Conduct</a>
<span class="opacity-25 px-2" role="presentation">•</span>
<a href="/report-abuse" class="crayons-link crayons-link--secondary">Report abuse</a>
</nav>
</div>
</div>
<div class="fullscreen-code js-fullscreen-code"></div>
<script>
// Listen for resize events and match them to the iframe
window.addEventListener('message', function(event) {
if (event.origin.startsWith('https://platform.twitter.com')) {
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
if (event.source === iframes[i].contentWindow) { // iframes which match the event
var iframe = iframes[i];
var data = event.data['twttr.embed'];
if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {
iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';
iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';
iframe.style.width = data['params']['0']['width'] + 'px !important';
}
break;
}
}
}
}, false);
// Legacy support: We have shifted up how we render tweets, but still need to render
// the old way for old embed. This could eventually be removed.
var videoPreviews = document.getElementsByClassName("ltag__twitter-tweet__media__video-wrapper");
[].forEach.call(videoPreviews, function(el) {
el.onclick = function(e) {
var divHeight = el.offsetHeight;
el.style.maxHeight = divHeight + "px";
el.getElementsByClassName("ltag__twitter-tweet__media--video-preview")[0].style.display = "none";
el.getElementsByClassName("ltag__twitter-tweet__video")[0].style.display = "block";
el.getElementsByTagName("video")[0].play();
}
});
var tweets = document.getElementsByClassName("ltag__twitter-tweet__main");
[].forEach.call(tweets, function(tweet){
tweet.onclick = function(e) {
if (e.target.nodeName == "A" || e.target.parentElement.nodeName == "A") {
return;
}
window.open(tweet.dataset.url,"_blank");
}
});
var waitingOnPodcast = setInterval(function() {
if (typeof initializePodcastPlayback !== 'undefined') {
initializePodcastPlayback();
clearInterval(waitingOnPodcast);
}
}, 1);
function activateRunkitTags() {
if (!areAnyRunkitTagsPresent())
return
var checkRunkit = setInterval(function() {
try {
dynamicallyLoadRunkitLibrary()
if (typeof(RunKit) === 'undefined') {
return
}
replaceTagContentsWithRunkitWidget()
clearInterval(checkRunkit);
} catch(e) {
console.error(e);
clearInterval(checkRunkit);
}
}, 200);
}
function isRunkitTagAlreadyActive(runkitTag) {
return runkitTag.querySelector("iframe") !== null;
};
function areAnyRunkitTagsPresent() {
var presentRunkitTags = document.getElementsByClassName("runkit-element");
return presentRunkitTags.length > 0
}
function replaceTagContentsWithRunkitWidget() {
var targets = document.getElementsByClassName("runkit-element");
for (var i = 0; i < targets.length; i++) {
if (isRunkitTagAlreadyActive(targets[i])) {
continue;
}
var wrapperContent = targets[i].textContent;
if (/^(<iframe src)/.test(wrapperContent) === false) {
if (targets[i].children.length > 0) {
var preamble = targets[i].children[0].textContent;
var content = targets[i].children[1].textContent;
targets[i].innerHTML = "";
var notebook = RunKit.createNotebook({
element: targets[i],
source: content,
preamble: preamble
});
}
}
}
};
function dynamicallyLoadRunkitLibrary() {
if (typeof(dynamicallyLoadScript) === "undefined")
return
dynamicallyLoadScript("//embed.runkit.com")
}
activateRunkitTags();
</script>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<div id="hide-comments-modal" class="hidden">
<form id="hide-comments-modal__form" class="hide-comments-modal__form" data-type="json" action="/comments/hide" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off"><input type="hidden" name="_method" value="patch" autocomplete="off"><input type="hidden" name="authenticity_token" value="hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ" autocomplete="off">
<div class="hide-comments-modal__content">
<p class="pb-2">
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id="hide-comments-modal__comment-permalink" href="#">permalink</a>.
</p>
<label class="crayons-field crayons-field--checkbox my-2">
<input name="hide_children" type="hidden" value="0" autocomplete="off"><input class="hide_children crayons-checkbox" type="checkbox" value="1" name="hide_children" id="hide_children">
<p class="crayons-field__label">Hide child comments as well</p>
</label>
<p class="pb-4 pt-2">
<button type="submit" class="crayons-btn">
Confirm
</button>
</p>
</div>
</form> <p class="fs-s color-base-60">For further actions, you may consider blocking this person and/or <a id="hide-comments-modal__report-link" href="/report-abuse">reporting abuse</a></p>
</div>
<div id="runtime-banner-container"></div>
<div id="i18n-translations" data-translations="{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Followi
Response Headers
—
Request Options
{
"proxy": {
"type": "datacenter"
},
"url": "https://dev.to/nicolaerario/comment/fe1e"
}
No network requests captured.
Network capture is only available for browser-based scrapers (Playwright, Scrapling).
Protections
No protection findings were detected for this method.
Scraper Response Data
Response payload
{
"content": "<html lang=\"en\" class=\"js-focus-visible\" data-js-focus-visible=\"\"><head>\n <meta charset=\"utf-8\">\n <title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>\n \n <meta name=\"description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta name=\"keywords\" content=\"software, coding, development, engineering, inclusive, community\">\n\n <meta property=\"og:type\" content=\"article\">\n <meta property=\"og:title\" content=\"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta property=\"og:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta property=\"og:site_name\" content=\"DEV Community\">\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@thepracticaldev\">\n <meta name=\"twitter:creator\" content=\"@\">\n <meta name=\"twitter:title\" content=\"Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta name=\"twitter:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n\n <link rel=\"canonical\" href=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:url\" content=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta name=\"twitter:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta property=\"og:image\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n <meta name=\"twitter:image:src\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n\n <meta name=\"last-updated\" content=\"2026-03-20 10:09:32 UTC\">\n <meta name=\"user-signed-in\" content=\"false\">\n <meta name=\"head-cached-at\" content=\"1774001372\">\n <meta name=\"environment\" content=\"production\">\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"main-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"main-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"main-crayons-stylesheet\">\n\n <script src=\"https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js\" defer=\"defer\"></script>\n\n <meta name=\"search-script\" content=\"https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n <link rel=\"icon\" type=\"image/x-icon\" href=\"https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link href=\"https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"192x192\">\n <link href=\"https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"128x128\">\n <meta name=\"apple-mobile-web-app-title\" content=\"dev.to\">\n <meta name=\"application-name\" content=\"dev.to\">\n <meta name=\"theme-color\" content=\"#ffffff\" media=\"(prefers-color-scheme: light)\">\n <meta name=\"theme-color\" content=\"#000000\" media=\"(prefers-color-scheme: dark)\">\n <link rel=\"search\" href=\"https://dev.to/open-search.xml\" type=\"application/opensearchdescription+xml\" title=\"DEV Community\">\n\n <meta property=\"forem:name\" content=\"DEV Community\">\n <meta property=\"forem:logo\" content=\"https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <meta property=\"forem:domain\" content=\"dev.to\">\n \n <script src=\"//www.googletagmanager.com/gtag/js?id=G-TYEM8Y3JN3\" async=\"\"></script><meta name=\"csrf-param\" content=\"authenticity_token\"><meta name=\"csrf-token\" content=\"CToQ3LFkEOX7xPcWAYxNtiOCparVBTLuEhDoDC9Dc82rxQmA5686Bd9MNYpf0AMiyjvqSFvMLgjpDUmaBSji5w\"></head>\n <body class=\"sans-serif-article-body default-header\" data-user-status=\"logged-out\" data-is-root-subforem=\"false\" data-subforem-id=\"1\" data-side-nav-visible=\"false\" data-community-name=\"DEV Community\" data-subscription-icon=\"https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png\" data-locale=\"en\" data-honeybadger-key=\"hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr\" data-deployed-at=\"2026-03-19T20:49:25Z\" data-latest-commit-id=\"f47ae62cb2f25a529b1137abf7975d0e86324bf1\" data-ga-tracking=\"UA-71991109-1\" data-cookie-banner-user-context=\"logged_out_only\" data-cookie-banner-platform-context=\"off\" data-algolia-id=\"PRSOBFP46H\" data-algolia-search-key=\"9aa7d31610cba78851c9b1f63776a9dd\" data-algolia-display=\"true\" data-dynamic-url-component=\"bmar11\" data-ga4-tracking-id=\"G-TYEM8Y3JN3\" data-runtime=\"Browser-Linux\" data-follow-handler-initialized=\"true\" data-loaded=\"true\">\n \n <script>\n if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {\n document.body.classList.add(\"hidden-shell\");\n }\n if (new Date() > new Date(\"2026-02-04T09:00:00-05:00\")) {\n document.body.dataset.sideNavVisible = \"false\";\n } \n </script>\n\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"secondary-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"secondary-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"secondary-crayons-stylesheet\">\n\n <div id=\"body-styles\">\n <style>\n :root {\n --accent-brand-lighter-rgb: 80, 99, 301;\n --accent-brand-rgb: 59, 73, 223;\n --accent-brand-darker-rgb: 47, 58, 178;\n }\n </style>\n </div>\n <div id=\"audiocontent\" data-podcast=\"\">\n \n </div>\n <div class=\"navigation-progress\" id=\"navigation-progress\"></div>\n\n<header id=\"topbar\" class=\"crayons-header topbar print-hidden\">\n <span id=\"route-change-target\" tabindex=\"-1\"></span>\n <a href=\"#main-content\" class=\"skip-content-link\">Skip to content</a>\n <div class=\"crayons-header__container\">\n <span class=\"inline-block m:hidden \">\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger mx-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\" class=\"crayons-icon\"><title id=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\">Navigation menu</title>\n <path d=\"M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z\"></path>\n</svg>\n\n </button>\n </span>\n <a href=\"/\" class=\"site-logo\" aria-label=\"DEV Community Home\">\n <img class=\"site-logo__img\" src=\"https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png\" style=\"aspect-ratio: 10 / 8\" alt=\"DEV Community\">\n</a>\n\n\n <div class=\"crayons-header--search js-search-form\" id=\"header-search\">\n <form accept-charset=\"UTF-8\" method=\"get\" action=\"/search\" role=\"search\">\n <div class=\"crayons-fields crayons-fields--horizontal\">\n <div class=\"crayons-field flex-1 relative\">\n <input id=\"search-input\" class=\"crayons-header--search-input crayons-textfield js-search-input\" type=\"text\" name=\"q\" placeholder=\"Find related posts...\" autocomplete=\"off\">\n <button type=\"submit\" aria-label=\"Search\" class=\"c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\">Search</title>\n <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z\"></path>\n</svg>\n\n </button>\n\n <a class=\"crayons-header--search-brand-indicator\" href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral\" target=\"_blank\" rel=\"noopener noreferrer\">\n Powered by Algolia\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" width=\"24\" height=\"24\" viewBox=\"0 0 500 500.34\" role=\"img\" aria-labelledby=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\">Search</title>\n <defs></defs><path class=\"cls-1\" d=\"M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z\"></path>\n</svg>\n\n </a>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"flex items-center h-100 ml-auto\">\n <div class=\"flex\" id=\"authentication-top-nav-actions\">\n <span class=\"hidden m:block\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"c-link c-link--block mr-2 whitespace-nowrap ml-auto\" data-no-instant=\"\">\n Log in\n </a>\n </span>\n\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" data-tracking-id=\"ca_top_nav\" data-tracking-source=\"top_navbar\" class=\"c-cta c-cta--branded whitespace-nowrap mr-2\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n </div>\n</header>\n\n<div class=\"hamburger\">\n <div class=\"hamburger__content\">\n <header class=\"hamburger__content__header\">\n <h2 class=\"fs-l fw-bold flex-1 break-word lh-tight\">DEV Community</h2>\n\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger shrink-0\" aria-label=\"Close\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7jqca81wlh4sunhyocm20yteah4aqdu\" aria-hidden=\"true\" class=\"crayons-icon c-btn__icon\"><title id=\"a7jqca81wlh4sunhyocm20yteah4aqdu\">Close</title><path d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z\"></path></svg>\n\n </button>\n </header>\n\n <div class=\"p-2 js-navigation-links-container\" id=\"authentication-hamburger-actions\">\n </div>\n </div>\n <div class=\"hamburger__overlay js-hamburger-trigger\"></div>\n</div>\n\n\n <div id=\"active-broadcast\" class=\"broadcast-wrapper\"></div>\n<div id=\"page-content\" class=\"wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760\" data-current-page=\"comments-index\">\n <div id=\"page-content-inner\" data-internal-nav=\"false\">\n <div id=\"page-route-change\" class=\"screen-reader-only\" aria-live=\"polite\" aria-atomic=\"true\"></div>\n\n <script src=\"https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js\" defer=\"defer\"></script>\n\n \n<script src=\"https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js\" defer=\"defer\"></script>\n\n<div class=\"crayons-layout crayons-layout--limited-l gap-0\" data-follow-button-container=\"true\">\n <span id=\"comment-article-indicator\" data-article-id=\"172117\"></span>\n\n <div id=\"response-templates-data\" class=\"hidden\"></div>\n <script src=\"https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js\" defer=\"defer\"></script>\n <header class=\"p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0\">\n <h1 class=\"crayons-subtitle-1 mb-4\">\n <span class=\"fw-normal color-base-60\">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>\n </h1>\n <div class=\"flex\">\n <a class=\"crayons-btn crayons-btn--outlined mr-2\" href=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5\">View post</a>\n </div>\n </header>\n\n\n <section class=\"crayons-card text-padding min-w-0 z-elevate\" id=\"comments-container\" data-commentable-id=\"172117\" data-commentable-type=\"Article\" data-commentable-author-id=\"102760\" data-commentable-co-author-ids=\"\">\n\n\n <div class=\"comments\" id=\"comment-trees-container\">\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-0\n root\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"m:mx-1 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\" class=\"crayons-icon expanded\"><title id=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\" class=\"crayons-icon collapsed\"><title id=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273144\" class=\"\n comment single-comment-node\n \n root\n comment--deep-0\n \n \" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fe1e\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273144\" aria-controls=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:02:26Z\" class=\"date-short-year\" title=\"Tuesday, September 17, 2019 at 6:02:26 PM\">Sep 17 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273144\" aria-controls=\"comment-dropdown-273144\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\" class=\"crayons-icon pointer-events-none\"><title id=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273144\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273144\" data-comment-url=\"https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>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</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273144\" data-comment-id=\"273144\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 9;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3btu01xca2urgip0ej7lt2tshj6bs28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3btu01xca2urgip0ej7lt2tshj6bs28\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a207ojso91c7liu3pwqmlfkjddpc2zco\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a207ojso91c7liu3pwqmlfkjddpc2zco\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-273144\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273144\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amu86j05tb5rto5dwbol17xfyeew32qd\" class=\"crayons-icon expanded\"><title id=\"amu86j05tb5rto5dwbol17xfyeew32qd\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"agcra525od8yaymvu4prqj30npmizg4n\" class=\"crayons-icon collapsed\"><title id=\"agcra525od8yaymvu4prqj30npmizg4n\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273163\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-comment-author-id=\"102760\" data-content-user-id=\"102760\">\n <a name=\"comment-fe27\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/jamestimmins\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" alt=\"jamestimmins profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/jamestimmins\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n James Timmins\n </span>\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -mr-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273163\" aria-controls=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"James Timmins profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n James Timmins\n \n </button>\n <div id=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/jamestimmins\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n James Timmins\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":102760,"name":"James Timmins"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: James Timmins\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-09-19T16:58:25Z\" class=\"date\">Sep 19, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -ml-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:29:14Z\" class=\"date-short-year\" title=\"Tuesday, September 17, 2019 at 6:29:14 PM\">Sep 17 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273163\" aria-controls=\"comment-dropdown-273163\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\" class=\"crayons-icon pointer-events-none\"><title id=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273163\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to James Timmins's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"102760\" data-action=\"settings-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/settings\" aria-label=\"Go to James Timmins's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"102760\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273163\" data-comment-url=\"https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Hide James Timmins's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/mod\" aria-label=\"Moderate James Timmins's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>\n\n<ol>\n<li>Explicitly check for a string value. DEBUG = (os.getenv(\"DEBUG\") == 'true')</li>\n<li>Cast the val to a boolean DEBUG = bool(os.getenv(\"DEBUG\")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>\n<li>Use a more fully-featured package like <a href=\"https://github.com/joke2k/django-environ\" rel=\"nofollow\">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>\n</ol>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273163\" data-comment-id=\"273163\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 8;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"acgeuroqpao89v1gqag5tnag1lzjbopd\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"acgeuroqpao89v1gqag5tnag1lzjbopd\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"alpwyiy7hd86mwy98dvfifgf6axh83az\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"alpwyiy7hd86mwy98dvfifgf6axh83az\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-273163\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273163\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\" class=\"crayons-icon expanded\"><title id=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\" class=\"crayons-icon collapsed\"><title id=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-359014\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-comment-author-id=\"119873\" data-content-user-id=\"119873\">\n <a name=\"comment-kb26\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/bhupesh\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" alt=\"bhupesh profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/bhupesh\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Bhupesh Varshney \ud83d\udc7e\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-359014\" aria-controls=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Bhupesh Varshney \ud83d\udc7e profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Bhupesh Varshney \ud83d\udc7e\n \n </button>\n <div id=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #0000bc; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/bhupesh\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Bhupesh Varshney \ud83d\udc7e\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney \ud83d\udc7e"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Bhupesh Varshney \ud83d\udc7e\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Email\n </div>\n <div class=\"value\">\n <a href=\"mailto:\"></a>\n </div>\n </li>\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India \ud83c\uddee\ud83c\uddf3\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-12-05T15:02:51Z\" class=\"date\">Dec 5, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2020-01-16T08:59:45Z\" class=\"date-short-year\" title=\"Thursday, January 16, 2020 at 8:59:45 AM\">Jan 16 '20</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-359014\" aria-controls=\"comment-dropdown-359014\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\" class=\"crayons-icon pointer-events-none\"><title id=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-359014\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Bhupesh Varshney \ud83d\udc7e's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"119873\" data-action=\"settings-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/settings\" aria-label=\"Go to Bhupesh Varshney \ud83d\udc7e's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"119873\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"359014\" data-comment-url=\"https://dev.to/bhupesh/comment/kb26\" aria-label=\"Hide Bhupesh Varshney \ud83d\udc7e's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/mod\" aria-label=\"Moderate Bhupesh Varshney \ud83d\udc7e's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" aria-label=\"Report Bhupesh Varshney \ud83d\udc7e's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>thanks for this</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-359014\" data-comment-id=\"359014\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 7;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-359014\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-359014\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7qkh3osze31p5tx1sa37ss9h410885k\" class=\"crayons-icon expanded\"><title id=\"a7qkh3osze31p5tx1sa37ss9h410885k\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ap76c9hto972y44k19vq49h1o4ipe73a\" class=\"crayons-icon collapsed\"><title id=\"ap76c9hto972y44k19vq49h1o4ipe73a\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1107596\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-comment-author-id=\"1215611\" data-content-user-id=\"1215611\">\n <a name=\"comment-2b0bm\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" alt=\"eftehassanpp profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n eftehassanpp\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1107596\" aria-controls=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"eftehassanpp profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n eftehassanpp\n \n </button>\n <div id=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/eftehassanpp\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n eftehassanpp\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: eftehassanpp\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Full stack Web Developer\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2023-11-21T21:33:36Z\" class=\"date\">Nov 21, 2023</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2023-11-21T21:37:14Z\" class=\"date-short-year\" title=\"Tuesday, November 21, 2023 at 9:37:14 PM\">Nov 21 '23</time>\n\n <span class=\"hidden m:inline-block\">\u2022 Edited on <time datetime=\"2023-11-21T21:37:49Z\" class=\"date-no-year\" title=\"Tuesday, November 21, 2023 at 9:37:49 PM\">Nov 21</time></span>\n <span class=\"m:hidden\">\u2022 Edited</span>\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1107596\" aria-controls=\"comment-dropdown-1107596\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"anqysk9wz3k463ox4nph62xear0d3p4w\" class=\"crayons-icon pointer-events-none\"><title id=\"anqysk9wz3k463ox4nph62xear0d3p4w\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1107596\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to eftehassanpp's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1215611\" data-action=\"settings-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/settings\" aria-label=\"Go to eftehassanpp's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1215611\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1107596\" data-comment-url=\"https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Hide eftehassanpp's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/mod\" aria-label=\"Moderate eftehassanpp's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>\n<strong>import json</strong><br>\n<strong>DEBUG = json.loads(os.getenv(\"DEBUG\"))<br>\nif DEBUG:<br>\n print(\"Debugging\")</strong></p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1107596\" data-comment-id=\"1107596\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 6;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abwchupp63so33156spria10r4l8m637\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"abwchupp63so33156spria10r4l8m637\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count hidden\">0</span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1107596\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\" class=\"crayons-icon expanded\"><title id=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2qx85oskkj1aic7osf7czppfjrosxg3\" class=\"crayons-icon collapsed\"><title id=\"a2qx85oskkj1aic7osf7czppfjrosxg3\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274947\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-comment-author-id=\"230500\" data-content-user-id=\"230500\">\n <a name=\"comment-fgin\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/anshsaini\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" alt=\"anshsaini profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/anshsaini\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Ansh Saini\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274947\" aria-controls=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Ansh Saini profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Ansh Saini\n \n </button>\n <div id=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #aaa1e0; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/anshsaini\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Ansh Saini\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":230500,"name":"Ansh Saini"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Ansh Saini\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Here to share my knowledge and learn new things, then share those as well.\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India\n </div>\n </li>\n <li>\n <div class=\"key\">\n Education\n </div>\n <div class=\"value\">\n Bachelor's Degree in Computer Science\n </div>\n </li>\n <li>\n <div class=\"key\">\n Work\n </div>\n <div class=\"value\">\n Software Development Manager at Suraasa\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-09-16T11:14:42Z\" class=\"date\">Sep 16, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T18:08:31Z\" class=\"date-short-year\" title=\"Thursday, September 19, 2019 at 6:08:31 PM\">Sep 19 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274947\" aria-controls=\"comment-dropdown-274947\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\" class=\"crayons-icon pointer-events-none\"><title id=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274947\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Ansh Saini's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"230500\" data-action=\"settings-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/settings\" aria-label=\"Go to Ansh Saini's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"230500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274947\" data-comment-url=\"https://dev.to/anshsaini/comment/fgin\" aria-label=\"Hide Ansh Saini's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/mod\" aria-label=\"Moderate Ansh Saini's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" aria-label=\"Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274947\" data-comment-id=\"274947\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 5;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ajn1movjhp9pjktahx5eie34nb5xkz92\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ajn1movjhp9pjktahx5eie34nb5xkz92\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-274947\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274947\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\" class=\"crayons-icon expanded\"><title id=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\" class=\"crayons-icon collapsed\"><title id=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274987\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fgkb\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274987\" aria-controls=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T19:03:55Z\" class=\"date-short-year\" title=\"Thursday, September 19, 2019 at 7:03:55 PM\">Sep 19 '19</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274987\" aria-controls=\"comment-dropdown-274987\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\" class=\"crayons-icon pointer-events-none\"><title id=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274987\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274987\" data-comment-url=\"https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Sure! After time spent to True this, False that... and your app lives of it\u2019s own life </p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274987\" data-comment-id=\"274987\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 4;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-274987\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274987\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab4azljunvkclho839543mrgdhe8uanf\" class=\"crayons-icon expanded\"><title id=\"ab4azljunvkclho839543mrgdhe8uanf\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\" class=\"crayons-icon collapsed\"><title id=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-712982\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-comment-author-id=\"201500\" data-content-user-id=\"201500\">\n <a name=\"comment-1eeia\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/guettli\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" alt=\"guettli profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/guettli\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Thomas G\u00fcttler\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-712982\" aria-controls=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Thomas G\u00fcttler profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n Thomas G\u00fcttler\n \n </button>\n <div id=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/guettli\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Thomas G\u00fcttler\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":201500,"name":"Thomas G\u00fcttler"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Thomas G\u00fcttler\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-07-25T13:33:46Z\" class=\"date\">Jul 25, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2021-05-13T19:37:19Z\" class=\"date-short-year\" title=\"Thursday, May 13, 2021 at 7:37:19 PM\">May 13 '21</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-712982\" aria-controls=\"comment-dropdown-712982\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\" class=\"crayons-icon pointer-events-none\"><title id=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-712982\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Thomas G\u00fcttler's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"201500\" data-action=\"settings-button\" data-path=\"https://dev.to/guettli/comment/1eeia/settings\" aria-label=\"Go to Thomas G\u00fcttler's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"201500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"712982\" data-comment-url=\"https://dev.to/guettli/comment/1eeia\" aria-label=\"Hide Thomas G\u00fcttler's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/guettli/comment/1eeia/mod\" aria-label=\"Moderate Thomas G\u00fcttler's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" aria-label=\"Report Thomas G\u00fcttler's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Don't ask my why the author did not accept my PR: <a href=\"https://github.com/theskumar/python-dotenv/pull/293/files\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">github.com/theskumar/python-dotenv...</a></p>\n\n<h3>\n <a name=\"converting-types\" href=\"#converting-types\">\n </a>\n Converting types\n</h3>\n\n<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>\n\n<p>Example:<br>\n</p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from</span> <span class=\"n\">distutils.util</span> <span class=\"kn\">import</span> <span class=\"n\">strtobool</span>\n<span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"nf\">bool</span><span class=\"p\">(</span><span class=\"nf\">strtobool</span><span class=\"p\">(</span><span class=\"n\">os</span><span class=\"p\">.</span><span class=\"nf\">getenv</span><span class=\"p\">(</span><span class=\"sh\">'</span><span class=\"s\">DEBUG</span><span class=\"sh\">'</span><span class=\"p\">,</span> <span class=\"sh\">'</span><span class=\"s\">True</span><span class=\"sh\">'</span><span class=\"p\">)))</span>\n</code></pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>Enter fullscreen mode</title>\n <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>Exit fullscreen mode</title>\n <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"></path>\n</svg>\n\n</div>\n</div>\n</div>\n\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-712982\" data-comment-id=\"712982\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 3;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amicadhcf0ecg45qix2h8bneakx329li\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"amicadhcf0ecg45qix2h8bneakx329li\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-712982\">4</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-712982\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aix6zq952ei8477ykobai8errhmtgk28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aix6zq952ei8477ykobai8errhmtgk28\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\" class=\"crayons-icon expanded\"><title id=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aqqgamrqupo07w83avfsaypdfc38f2h8\" class=\"crayons-icon collapsed\"><title id=\"aqqgamrqupo07w83avfsaypdfc38f2h8\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1322245\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-comment-author-id=\"2562290\" data-content-user-id=\"2562290\">\n <a name=\"comment-2n5pf\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" alt=\"derrick_k_429f36beeddff99 profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n derrick k\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1322245\" aria-controls=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"derrick k profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n derrick k\n \n </button>\n <div id=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/derrick_k_429f36beeddff99\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n derrick k\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":2562290,"name":"derrick k"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: derrick k\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-12-12T14:19:12Z\" class=\"date\">Dec 12, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2025-04-19T04:12:37Z\" class=\"date-short-year\" title=\"Saturday, April 19, 2025 at 4:12:37 AM\">Apr 19 '25</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1322245\" aria-controls=\"comment-dropdown-1322245\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\" class=\"crayons-icon pointer-events-none\"><title id=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1322245\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to derrick k's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"2562290\" data-action=\"settings-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings\" aria-label=\"Go to derrick k's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"2562290\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1322245\" data-comment-url=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Hide derrick k's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod\" aria-label=\"Moderate derrick k's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>I agree, it works perfectly</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1322245\" data-comment-id=\"1322245\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 2;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\" id=\"reactions-count-1322245\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1322245\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\" class=\"crayons-icon expanded\"><title id=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atcipprtb6yh2byyphfnhsbchu8x18k0\" class=\"crayons-icon collapsed\"><title id=\"atcipprtb6yh2byyphfnhsbchu8x18k0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1228782\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-comment-author-id=\"1625827\" data-content-user-id=\"1625827\">\n <a name=\"comment-2hnim\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/niceguydave\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" alt=\"niceguydave profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/niceguydave\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n David Talbot\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1228782\" aria-controls=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"David Talbot profile details\" aria-expanded=\"false\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n David Talbot\n \n </button>\n <div id=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/niceguydave\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n David Talbot\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1625827,"name":"David Talbot"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: David Talbot\" aria-pressed=\"false\" data-fetched=\"fetched\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-06-14T12:03:32Z\" class=\"date\">Jun 14, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2024-09-04T09:09:28Z\" class=\"date-short-year\" title=\"Wednesday, September 4, 2024 at 9:09:28 AM\">Sep 4 '24</time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1228782\" aria-controls=\"comment-dropdown-1228782\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\" data-dropdown-initialized=\"true\" data-initialized=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aclks2g2l2bow740sya6k4kff7mjsiuv\" class=\"crayons-icon pointer-events-none\"><title id=\"aclks2g2l2bow740sya6k4kff7mjsiuv\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1228782\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to David Talbot's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1625827\" data-action=\"settings-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/settings\" aria-label=\"Go to David Talbot's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1625827\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1228782\" data-comment-url=\"https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Hide David Talbot's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/mod\" aria-label=\"Moderate David Talbot's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions\"><a href=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" class=\"crayons-link crayons-link--block\">Report abuse</a></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>This is really helpful, thanks. Agreed\u2014it seems strange that your PR was rejected, given that variables with False values get (confusingly) cast to True.</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1228782\" data-comment-id=\"1228782\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\" aria-pressed=\"false\" style=\"z-index: 1;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"apba72bjxcxsgi9yze6l7sl4vednujll\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"apba72bjxcxsgi9yze6l7sl4vednujll\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count hidden\">0</span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1228782\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a310ex3qenwsd4ez2fili98qg92olabo\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a310ex3qenwsd4ez2fili98qg92olabo\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n </div>\n\n </section>\n\n <div class=\"py-6\">\n <nav class=\"fs-s align-center block\" aria-label=\"Conduct controls\">\n <a href=\"/code-of-conduct\" class=\"crayons-link crayons-link--secondary\">Code of Conduct</a>\n <span class=\"opacity-25 px-2\" role=\"presentation\">\u2022</span>\n <a href=\"/report-abuse\" class=\"crayons-link crayons-link--secondary\">Report abuse</a>\n</nav>\n\n </div>\n</div>\n\n<div class=\"fullscreen-code js-fullscreen-code\"></div>\n\n<script>\n // Listen for resize events and match them to the iframe\n window.addEventListener('message', function(event) {\n if (event.origin.startsWith('https://platform.twitter.com')) {\n var iframes = document.getElementsByTagName('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (event.source === iframes[i].contentWindow) { // iframes which match the event\n var iframe = iframes[i];\n var data = event.data['twttr.embed'];\n if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {\n iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.width = data['params']['0']['width'] + 'px !important';\n }\n break;\n }\n }\n }\n}, false);\n\n// Legacy support: We have shifted up how we render tweets, but still need to render\n// the old way for old embed. This could eventually be removed.\nvar videoPreviews = document.getElementsByClassName(\"ltag__twitter-tweet__media__video-wrapper\");\n[].forEach.call(videoPreviews, function(el) {\n el.onclick = function(e) {\n var divHeight = el.offsetHeight;\n el.style.maxHeight = divHeight + \"px\";\n el.getElementsByClassName(\"ltag__twitter-tweet__media--video-preview\")[0].style.display = \"none\";\n el.getElementsByClassName(\"ltag__twitter-tweet__video\")[0].style.display = \"block\";\n el.getElementsByTagName(\"video\")[0].play();\n }\n});\nvar tweets = document.getElementsByClassName(\"ltag__twitter-tweet__main\");\n[].forEach.call(tweets, function(tweet){\n tweet.onclick = function(e) {\n if (e.target.nodeName == \"A\" || e.target.parentElement.nodeName == \"A\") {\n return;\n }\n window.open(tweet.dataset.url,\"_blank\");\n }\n});\n\n \n var waitingOnPodcast = setInterval(function() {\n if (typeof initializePodcastPlayback !== 'undefined') {\n initializePodcastPlayback();\n clearInterval(waitingOnPodcast);\n }\n}, 1);\n\n \n function activateRunkitTags() {\n if (!areAnyRunkitTagsPresent())\n return\n\n var checkRunkit = setInterval(function() {\n try {\n dynamicallyLoadRunkitLibrary()\n\n if (typeof(RunKit) === 'undefined') {\n return\n }\n\n replaceTagContentsWithRunkitWidget()\n clearInterval(checkRunkit);\n } catch(e) {\n console.error(e);\n clearInterval(checkRunkit);\n }\n }, 200);\n}\n\nfunction isRunkitTagAlreadyActive(runkitTag) {\n return runkitTag.querySelector(\"iframe\") !== null;\n};\n\nfunction areAnyRunkitTagsPresent() {\n var presentRunkitTags = document.getElementsByClassName(\"runkit-element\");\n\n return presentRunkitTags.length > 0\n}\n\nfunction replaceTagContentsWithRunkitWidget() {\n var targets = document.getElementsByClassName(\"runkit-element\");\n for (var i = 0; i < targets.length; i++) {\n if (isRunkitTagAlreadyActive(targets[i])) {\n continue;\n }\n\n var wrapperContent = targets[i].textContent;\n if (/^(<iframe src)/.test(wrapperContent) === false) {\n if (targets[i].children.length > 0) {\n var preamble = targets[i].children[0].textContent;\n var content = targets[i].children[1].textContent;\n targets[i].innerHTML = \"\";\n var notebook = RunKit.createNotebook({\n element: targets[i],\n source: content,\n preamble: preamble\n });\n }\n }\n }\n};\n\nfunction dynamicallyLoadRunkitLibrary() {\n if (typeof(dynamicallyLoadScript) === \"undefined\")\n return\n\n dynamicallyLoadScript(\"//embed.runkit.com\")\n}\n\nactivateRunkitTags();\n\n</script>\n<script async=\"\" src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n\n\n<div id=\"hide-comments-modal\" class=\"hidden\">\n <form id=\"hide-comments-modal__form\" class=\"hide-comments-modal__form\" data-type=\"json\" action=\"/comments/hide\" accept-charset=\"UTF-8\" data-remote=\"true\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"\u2713\" autocomplete=\"off\"><input type=\"hidden\" name=\"_method\" value=\"patch\" autocomplete=\"off\"><input type=\"hidden\" name=\"authenticity_token\" value=\"hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ\" autocomplete=\"off\">\n <div class=\"hide-comments-modal__content\">\n <p class=\"pb-2\">\n Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id=\"hide-comments-modal__comment-permalink\" href=\"#\">permalink</a>.\n </p>\n <label class=\"crayons-field crayons-field--checkbox my-2\">\n <input name=\"hide_children\" type=\"hidden\" value=\"0\" autocomplete=\"off\"><input class=\"hide_children crayons-checkbox\" type=\"checkbox\" value=\"1\" name=\"hide_children\" id=\"hide_children\">\n <p class=\"crayons-field__label\">Hide child comments as well</p>\n </label>\n <p class=\"pb-4 pt-2\">\n <button type=\"submit\" class=\"crayons-btn\">\n Confirm\n </button>\n </p>\n </div>\n</form> <p class=\"fs-s color-base-60\">For further actions, you may consider blocking this person and/or <a id=\"hide-comments-modal__report-link\" href=\"/report-abuse\">reporting abuse</a></p>\n</div>\n\n\n <div id=\"runtime-banner-container\"></div>\n <div id=\"i18n-translations\" data-translations=\"{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","search_placeholder":"Search...","search_find_related_posts":"Find related posts...","search_powered_by":"Powered by Algolia","search_submit_search":"Submit search for advanced filtering.","search_displaying_recommendations":"Displaying Algolia Recommendations \u2014 Start typing to search","article_form_save_changes":"Save changes","article_form_schedule":"Schedule","article_form_publish":"Publish","article_form_loading_preview":"Loading preview","article_form_preview_loaded":"Preview loaded","comments_preview":"Preview","comments_continue_editing":"Continue editing","survey_enter_response":"Enter your response here...","survey_thank_you_response":"Thank you for your response.","survey_thank_you_completing":"Thank you for completing the survey!","dashboard_analytics_readers":"Readers","dashboard_analytics_comments":"Comments","dashboard_analytics_reactions":"Reactions","stats_by":"by","editor_new_title":"New post title here...","editor_body_placeholder":"Write your post content here...","tags_field_label":"Add up to 4 tags","tags_field_placeholder":"Add up to 4 tags...","counted_organization":{"one":"%{count} organization","other":"%{count} organizations"},"counted_user":{"one":"%{count} person","other":"%{count} people"},"not_following":"You're not following anyone","following_everyone":"You're following %{details} (everyone)","you_are_following":"You're following","and":"and"}}}\"></div>\n </div>\n</div>\n \n\n<footer id=\"footer\" class=\"crayons-footer print-hidden\">\n <div id=\"footer-container\" class=\"crayons-footer__container\">\n\n\n <style>\n .long-bb-body {\n max-height: calc(100vh - 200px);\n overflow: hidden;\n }\n .long-bb-bottom {\n height: 180px;\n background: linear-gradient(to top, var(--card-bg), transparent);\n margin-top: -180px;\n position:relative;\n z-index: 5;\n }\n</style>\n\n <div style=\"\" data-display-unit=\"\" data-id=\"146443\" data-category-click=\"click\" data-category-impression=\"impression\" data-context-type=\"home\" data-special=\"nothing\" data-article-id=\"\" data-type-of=\"in_house\">\n <div class=\"crayons-card crayons-card--secondary crayons-bb bb-placement js-billboard\" style=\"display: inline-flex; flex-direction: column; align-items: center; margin: 0 auto 2rem auto; width: fit-content; padding: 2rem;\">\n <p style=\"font-weight: bold; margin: 0 0 1rem 0;\">\n \ud83d\udc8e DEV Diamond Sponsors\n </p>\n <p style=\"font-size: 0.8em; margin: 0 0 2rem 0;\">\n Thank you to our Diamond Sponsors for supporting the DEV Community\n </p>\n \n <div style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem;\">\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://aistudio.google.com/?utm_source=partner&utm_medium=partner&utm_campaign=FY25-Global-DEVpartnership-sponsorship-AIS&utm_content=-&utm_term=-&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjlyhbdqehj3akhz166w.png\" alt=\"Google AI - Official AI Model and Platform Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 54px; padding: 10px;\" loading=\"lazy\" width=\"2048\" height=\"472\">\n </a>\n <p style=\"text-align: center;\">Google AI is the official AI Model and Platform Partner of DEV</p>\n </div>\n\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://neon.tech/?ref=devto&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnl88cil6afxzmgwrgtt.png\" alt=\"Neon - Official Database Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Neon is the official database partner of DEV</p>\n </div>\n \n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv30ephnolfvnlwgwm0yz.png\" alt=\"Algolia - Official Search Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Algolia is the official search partner of DEV</p>\n </div>\n </div>\n </div>\n </div>\n\n\n <p class=\"fs-s crayons-footer__description\">\n <a class=\"c-link c-link--branded fw-medium\" aria-label=\"DEV Community Home\" href=\"/\">DEV Community</a> \u2014 A space to discuss and keep up software development and manage your software career\n </p>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/\">\n Home\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/about\">\n About\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/contact\">\n Contact\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"https://mlh.io/\">\n MLH\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/code-of-conduct\">\n Code of Conduct\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/privacy\">\n Privacy Policy\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/terms\">\n Terms of Use\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <div class=\"fs-s\">\n <p>Built on <a class=\"c-link c-link--branded\" target=\"_blank\" rel=\"noopener\" href=\"https://www.forem.com\">Forem</a> \u2014 the <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/opensource\">open source</a> software that powers <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to\">DEV</a> and other inclusive communities.</p>\n <p>Made with love and <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/rails\">Ruby on Rails</a>. DEV Community <span title=\"copyright\">\u00a9</span> 2016 - 2026.</p>\n </div>\n </div>\n</footer>\n<div id=\"snack-zone\"></div>\n\n <div id=\"global-signup-modal\" class=\"authentication-modal hidden\">\n <div class=\"authentication-modal__container\">\n <figure class=\"authentication-modal__image-container\">\n <img class=\"authentication-modal__image\" src=\"https://media2.dev.to/dynamic/image/width=190,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" alt=\"DEV Community\" loading=\"lazy\">\n </figure>\n <div class=\"authentication-modal__content\">\n <p class=\"authentication-modal__description\">\n We're a place where coders share, stay up-to-date and grow their careers.\n </p>\n </div>\n <div class=\"authentication-modal__actions\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"crayons-btn\" aria-label=\"Log in\" data-no-instant=\"\">\n Log in\n </a>\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" class=\"crayons-btn crayons-btn--ghost-brand js-global-signup-modal__create-account\" aria-label=\"Create new account\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n</div>\n\n<script src=\"https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js\" defer=\"defer\"></script>\n\n <div id=\"cookie-consent\"></div>\n <div id=\"reaction-category-resources\" class=\"hidden\" aria-hidden=\"true\">\n <img data-name=\"Like\" data-slug=\"like\" data-position=\"1\" src=\"https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Unicorn\" data-slug=\"unicorn\" data-position=\"2\" src=\"https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Exploding Head\" data-slug=\"exploding_head\" data-position=\"3\" src=\"https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Raised Hands\" data-slug=\"raised_hands\" data-position=\"4\" src=\"https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Fire\" data-slug=\"fire\" data-position=\"5\" src=\"https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg\" width=\"18\" height=\"18\">\n</div>\n\n <script>\n var userSignedIn = false;\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n initAuth();\n } else {\n document.addEventListener('DOMContentLoaded', initAuth);\n }\n\n function initAuth() {\n var paramToken = new URLSearchParams(window.location.search).get('jwt');\n\n if (paramToken && !userSignedIn) {\n authenticateUser(paramToken);\n } else {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = 'https://forem.com/auth_pass/iframe';\n \n document.body.appendChild(iframe);\n \n window.addEventListener('message', function(event) {\n if (event.origin !== 'https://forem.com' && event.origin !== window.location.origin) {\n return;\n }\n \n var data = event.data;\n \n if (data.authenticated && !userSignedIn) {\n authenticateUser(data.token);\n } else if(data.authenticated && window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n action: 'login',\n token: data.token,\n }));\n }\n }); \n }\n\n function authenticateUser(token) {\n fetch('/auth_pass/token_login', {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': getMetaContent('csrf-token'),\n },\n body: JSON.stringify({ token: token }),\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(data) {\n if (data.success) {\n if (document.head.querySelector('meta[name=\"user-signed-in\"][content=\"false\"]')) {\n // Reload the page to update the user's state\n location.reload();\n }\n }\n })\n .catch(function(error) {\n console.error('Error during authentication:', error);\n });\n }\n\n function getMetaContent(name) {\n var element = document.querySelector('meta[name=\"' + name + '\"]');\n return element ? element.getAttribute('content') : '';\n }\n }\n</script>\n\n \n \n \n \n \n<iframe src=\"https://forem.com/auth_pass/iframe\" style=\"display: none;\"></iframe><iframe scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" src=\"https://platform.twitter.com/widgets/widget_iframe.2f70fb173b9000da126c79afe2098f02.html?origin=https%3A%2F%2Fdev.to\" title=\"Twitter settings iframe\" style=\"display: none;\"></iframe></body></html>",
"cookies": null,
"errors": null,
"final_url": "https://dev.to/nicolaerario/comment/fe1e",
"headers": {},
"id": null,
"scraper_data": null,
"scraperouter": null,
"screenshot_url": null,
"status_code": 200
}
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Response Headers
{
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88571",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to; script-src 'self' 'unsafe-eval'",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:43 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100136-CHI",
"x-timer": "S1774089943.495437,VS0,VE2",
"x-xss-protection": "0"
}
Request Options
{
"proxy": {
"type": "datacenter"
},
"scraper_options": {
"network_requests": true
},
"screenshot": true,
"url": "https://dev.to/nicolaerario/comment/fe1e"
}
1 requests captured
| Method | URL | Status | Type | Time |
|---|---|---|---|---|
| GET |
https://dev.to/nicolaerario/comment/fe1e
|
200 | document | 0.12s |
Protections
CDN
Fastly
Fastly delivery headers were detected.
Impact. Edge behavior may affect headers, caching, and request handling.
Recommendation. Use this as routing context rather than a direct block signal.
Evidence
- X-Served-By header present
CDN
Varnish
Varnish caching markers were detected.
Impact. You may be seeing a cache or edge layer instead of direct origin behavior.
Recommendation. Interpret this as edge context and combine it with stronger protection findings if present.
Evidence
- Via header referenced Varnish
Structured Metadata
Open Graph
[
{
"namespace": {
"og": "http://ogp.me/ns#"
},
"properties": [
[
"og:type",
"article"
],
[
"og:title",
"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables"
],
[
"og:description",
"How to use environment variables to keep secure keys out of your code."
],
[
"og:site_name",
"DEV Community"
],
[
"og:url",
"https://dev.to/nicolaerario/comment/fe1e"
],
[
"og:title",
"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community"
],
[
"og:image",
"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg"
]
]
}
]
Scraper Response Data
Response payload
{
"content": "<!DOCTYPE html><html lang=\"en\"><head>\n <meta charset=\"utf-8\">\n <title>How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community</title>\n \n <meta name=\"description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta name=\"keywords\" content=\"software, coding, development, engineering, inclusive, community\">\n\n <meta property=\"og:type\" content=\"article\">\n <meta property=\"og:title\" content=\"Discussion of Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta property=\"og:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n <meta property=\"og:site_name\" content=\"DEV Community\">\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@thepracticaldev\">\n <meta name=\"twitter:creator\" content=\"@\">\n <meta name=\"twitter:title\" content=\"Django Cheat Sheet: Keep Credentials Secure with Environment Variables\">\n <meta name=\"twitter:description\" content=\"How to use environment variables to keep secure keys out of your code.\">\n\n <link rel=\"canonical\" href=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:url\" content=\"https://dev.to/nicolaerario/comment/fe1e\">\n <meta property=\"og:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta name=\"twitter:title\" content=\"How do you manage Boolean with python-dotenv? I... \u2014 DEV Community\">\n <meta property=\"og:image\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n <meta name=\"twitter:image:src\" content=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3otvb2z646ytpt1hl2rv.jpg\">\n\n <meta name=\"last-updated\" content=\"2026-03-20 10:09:32 UTC\">\n <meta name=\"user-signed-in\" content=\"false\">\n <meta name=\"head-cached-at\" content=\"1774001372\">\n <meta name=\"environment\" content=\"production\">\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"main-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"main-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"main-crayons-stylesheet\">\n\n <script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"40ca66d9035c488f53e6be4060cf64fc15e70dd40222\" type=\"text/javascript\">document.getElementById(\"40ca66d9035c488f53e6be4060cf64fc15e70dd40222\")?.remove();(() => { // Create a function that looks like a native getter\nconst nativeGetter = function get webdriver() {\n return false;\n};\n\n// Copy over native function properties\nObject.defineProperties(nativeGetter, {\n name: { value: 'get webdriver', configurable: true },\n length: { value: 0, configurable: true },\n toString: {\n value: function() {\n return `function get webdriver() { [native code] }`;\n },\n configurable: true\n }\n});\n\n// Make it look native\nObject.setPrototypeOf(nativeGetter, Function.prototype);\n\n// Apply the modified descriptor\nObject.defineProperty(Navigator.prototype, 'webdriver', {\n get: nativeGetter,\n set: undefined,\n enumerable: true,\n configurable: true\n}); })();</script><script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"324be3a3b68dca1c4e61037dae94f8dbec183dc1b336\" type=\"text/javascript\">document.getElementById(\"324be3a3b68dca1c4e61037dae94f8dbec183dc1b336\")?.remove();(() => { // To escape `HEADCHR_CHROME_OBJ` test in headless mode => https://github.com/antoinevastel/fp-collect/blob/master/src/fpCollect.js#L322\n// Faking window.chrome fully\n\nif (!window.chrome) {\n // First, save all existing properties\n const originalKeys = Object.getOwnPropertyNames(window);\n const tempObj = {};\n\n // Recreate all properties in original order\n for (const key of originalKeys) {\n const descriptor = Object.getOwnPropertyDescriptor(window, key);\n const value = window[key];\n // delete window[key];\n Object.defineProperty(tempObj, key, descriptor);\n }\n\n // Use the exact property descriptor found in headful Chrome\n // fetch it via `Object.getOwnPropertyDescriptor(window, 'chrome')`\n const mockChrome = {\n loadTimes: {},\n csi: {},\n app: {\n isInstalled: false\n },\n // Add other Chrome-specific properties\n };\n\n Object.defineProperty(tempObj, 'chrome', {\n writable: true,\n enumerable: true,\n configurable: false,\n value: mockChrome\n });\n for (const key of Object.getOwnPropertyNames(tempObj)) {\n try {\n Object.defineProperty(window, key,\n Object.getOwnPropertyDescriptor(tempObj, key));\n } catch (e) {}\n };\n // todo: solve this\n // Using line below bypasses the hasHighChromeIndex test in creepjs ==> https://github.com/abrahamjuliot/creepjs/blob/master/src/headless/index.ts#L121\n // Chrome object have to be in the end of the window properties\n // Object.assign(window, tempObj);\n // But makes window.chrome unreadable on 'https://bot.sannysoft.com/'\n}\n\n// That means we're running headful and don't need to mock anything\nif ('app' in window.chrome) {\n return; // Nothing to do here\n}\nconst makeError = {\n ErrorInInvocation: fn => {\n const err = new TypeError(`Error in invocation of app.${fn}()`);\n return utils.stripErrorWithAnchor(\n err,\n `at ${fn} (eval at <anonymous>`,\n );\n },\n};\n// check with: `JSON.stringify(window.chrome['app'])`\nconst STATIC_DATA = JSON.parse(\n `\n{\n \"isInstalled\": false,\n \"InstallState\": {\n \"DISABLED\": \"disabled\",\n \"INSTALLED\": \"installed\",\n \"NOT_INSTALLED\": \"not_installed\"\n },\n \"RunningState\": {\n \"CANNOT_RUN\": \"cannot_run\",\n \"READY_TO_RUN\": \"ready_to_run\",\n \"RUNNING\": \"running\"\n }\n}\n `.trim(),\n );\nwindow.chrome.app = {\n ...STATIC_DATA,\n\n get isInstalled() {\n return false;\n },\n\n getDetails: function getDetails() {\n if (arguments.length) {\n throw makeError.ErrorInInvocation(`getDetails`);\n }\n return null;\n },\n getIsInstalled: function getDetails() {\n if (arguments.length) {\n throw makeError.ErrorInInvocation(`getIsInstalled`);\n }\n return false;\n },\n runningState: function getDetails() {\n if (arguments.length) {\n throw makeError.ErrorInInvocation(`runningState`);\n }\n return 'cannot_run';\n },\n};\n// Check that the Navigation Timing API v1 is available, we need that\nif (!window.performance || !window.performance.timing) {\n return;\n}\nconst {timing} = window.performance;\nwindow.chrome.csi = function () {\n return {\n onloadT: timing.domContentLoadedEventEnd,\n startE: timing.navigationStart,\n pageT: Date.now() - timing.navigationStart,\n tran: 15, // Transition type or something\n };\n};\nif (!window.PerformancePaintTiming){\n return;\n}\nconst {performance} = window;\n// Some stuff is not available on about:blank as it requires a navigation to occur,\n// let's harden the code to not fail then:\nconst ntEntryFallback = {\n nextHopProtocol: 'h2',\n type: 'other',\n};\n\n// The API exposes some funky info regarding the connection\nconst protocolInfo = {\n get connectionInfo() {\n const ntEntry =\n performance.getEntriesByType('navigation')[0] || ntEntryFallback;\n return ntEntry.nextHopProtocol;\n },\n get npnNegotiatedProtocol() {\n // NPN is deprecated in favor of ALPN, but this implementation returns the\n // HTTP/2 or HTTP2+QUIC/39 requests negotiated via ALPN.\n const ntEntry =\n performance.getEntriesByType('navigation')[0] || ntEntryFallback;\n return ['h2', 'hq'].includes(ntEntry.nextHopProtocol)\n ? ntEntry.nextHopProtocol\n : 'unknown';\n },\n get navigationType() {\n const ntEntry =\n performance.getEntriesByType('navigation')[0] || ntEntryFallback;\n return ntEntry.type;\n },\n get wasAlternateProtocolAvailable() {\n // The Alternate-Protocol header is deprecated in favor of Alt-Svc\n // (https://www.mnot.net/blog/2016/03/09/alt-svc), so technically this\n // should always return false.\n return false;\n },\n get wasFetchedViaSpdy() {\n // SPDY is deprecated in favor of HTTP/2, but this implementation returns\n // true for HTTP/2 or HTTP2+QUIC/39 as well.\n const ntEntry =\n performance.getEntriesByType('navigation')[0] || ntEntryFallback;\n return ['h2', 'hq'].includes(ntEntry.nextHopProtocol);\n },\n get wasNpnNegotiated() {\n // NPN is deprecated in favor of ALPN, but this implementation returns true\n // for HTTP/2 or HTTP2+QUIC/39 requests negotiated via ALPN.\n const ntEntry =\n performance.getEntriesByType('navigation')[0] || ntEntryFallback;\n return ['h2', 'hq'].includes(ntEntry.nextHopProtocol);\n },\n};\n\n// Truncate number to specific number of decimals, most of the `loadTimes` stuff has 3\nfunction toFixed(num, fixed) {\n var re = new RegExp('^-?\\\\d+(?:.\\\\d{0,' + (fixed || -1) + '})?');\n return num.toString().match(re)[0];\n}\n\nconst timingInfo = {\n get firstPaintAfterLoadTime() {\n // This was never actually implemented and always returns 0.\n return 0;\n },\n get requestTime() {\n return timing.navigationStart / 1000;\n },\n get startLoadTime() {\n return timing.navigationStart / 1000;\n },\n get commitLoadTime() {\n return timing.responseStart / 1000;\n },\n get finishDocumentLoadTime() {\n return timing.domContentLoadedEventEnd / 1000;\n },\n get finishLoadTime() {\n return timing.loadEventEnd / 1000;\n },\n get firstPaintTime() {\n const fpEntry = performance.getEntriesByType('paint')[0] || {\n startTime: timing.loadEventEnd / 1000, // Fallback if no navigation occured (`about:blank`)\n };\n return toFixed(\n (fpEntry.startTime + performance.timeOrigin) / 1000,\n 3,\n );\n },\n};\n\nwindow.chrome.loadTimes = function () {\n return {\n ...protocolInfo,\n ...timingInfo,\n };\n}; })();</script><script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"e7cd2927c1785f612d19184535102da3a75a9291bbe2\" type=\"text/javascript\">document.getElementById(\"e7cd2927c1785f612d19184535102da3a75a9291bbe2\")?.remove();(() => { if(navigator.plugins.length == 0){\n Object.defineProperty(navigator, 'plugins', {\n get: () => {\n const PDFViewerPlugin = Object.create(Plugin.prototype, {\n description: { value: 'Portable Document Format', enumerable: false },\n filename: { value: 'internal-pdf-viewer', enumerable: false },\n name: { value: 'PDF Viewer', enumerable: false },\n });\n const ChromePDFViewer = Object.create(Plugin.prototype, {\n description: { value: 'Portable Document Format', enumerable: false },\n filename: { value: 'internal-pdf-viewer', enumerable: false },\n name: { value: 'Chrome PDF Viewer', enumerable: false },\n });\n const ChromiumPDFViewer = Object.create(Plugin.prototype, {\n description: { value: 'Portable Document Format', enumerable: false },\n filename: { value: 'internal-pdf-viewer', enumerable: false },\n name: { value: 'Chromium PDF Viewer', enumerable: false },\n });\n const EdgePDFViewer = Object.create(Plugin.prototype, {\n description: { value: 'Portable Document Format', enumerable: false },\n filename: { value: 'internal-pdf-viewer', enumerable: false },\n name: { value: 'Microsoft Edge PDF Viewer', enumerable: false },\n });\n const WebKitPDFPlugin = Object.create(Plugin.prototype, {\n description: { value: 'Portable Document Format', enumerable: false },\n filename: { value: 'internal-pdf-viewer', enumerable: false },\n name: { value: 'WebKit built-in PDF', enumerable: false },\n });\n\n return Object.create(PluginArray.prototype, {\n length: { value: 5 },\n 0: { value: PDFViewerPlugin },\n 1: { value: ChromePDFViewer },\n 2: { value: ChromiumPDFViewer },\n 3: { value: EdgePDFViewer },\n 4: { value: WebKitPDFPlugin },\n });\n },\n });\n} })();</script><script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"5df8ccf43487846a0683346343871f2e54ec4b21cddd\" type=\"text/javascript\">document.getElementById(\"5df8ccf43487846a0683346343871f2e54ec4b21cddd\")?.remove();(() => { // Bypasses `notificationIsDenied` test in creepsjs's 'Like Headless' sections\nconst isSecure = document.location.protocol.startsWith('https')\nif (isSecure){\n Object.defineProperty(Notification, 'permission', {get: () => 'default'})\n} })();</script><script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"99f0ea3063f5acc22604ec6f9bc255948674eab1ae6d\" type=\"text/javascript\">document.getElementById(\"99f0ea3063f5acc22604ec6f9bc255948674eab1ae6d\")?.remove();(() => { const windowScreenProps = {\n // Dimensions\n innerHeight: 0,\n innerWidth: 0,\n outerHeight: 754,\n outerWidth: 1313,\n\n // Position\n screenX: 19,\n pageXOffset: 0,\n pageYOffset: 0,\n\n // Display\n devicePixelRatio: 2\n};\n\ntry {\n for (const [prop, value] of Object.entries(windowScreenProps)) {\n if (value > 0) {\n // The 0 values are introduced by collecting in the hidden iframe.\n // They are document sizes anyway so no need to test them or inject them.\n window[prop] = value;\n }\n }\n} catch (e) {\n console.warn(e);\n}; })();</script><script class=\"316baf399efc014c1af900b12c49708d73d99837\" id=\"29f3d8e98641979c75db1e7a8f478f3f7e4834613542\" type=\"text/javascript\">document.getElementById(\"29f3d8e98641979c75db1e7a8f478f3f7e4834613542\")?.remove();(() => { // Remove playwright fingerprint => https://github.com/microsoft/playwright/commit/c9e673c6dca746384338ab6bb0cf63c7e7caa9b2#diff-087773eea292da9db5a3f27de8f1a2940cdb895383ad750c3cd8e01772a35b40R915\ndelete window.__pwInitScripts;\ndelete window.__playwright__binding__; })();</script><script src=\"https://assets.dev.to/assets/base-61fc3cfea872c8a997f95f730505408f918fe47cc9a61962dbd3c09cdbf34565.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/application-1fdb73d693137ffd9abe5f92c1d35da1e6137ad26fc4e5863c4e484209b6aa35.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseInitializers-2f0777a6d67046056f9f42665560ce072de3801292674358ddbad6e135c1891d.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/baseTracking-b6bf73e5ee66633e151e7d5b7c6bbccedfa4c59e3615be97b98c4c0f543ddae7.js\" defer=\"defer\"></script>\n<script src=\"https://assets.dev.to/assets/followButtons-a29380c2c88136b97b2b5e63e94614ff7458fc72e07cffa7b6153831c28a40d2.js\" defer=\"defer\"></script>\n\n <meta name=\"search-script\" content=\"https://assets.dev.to/assets/Search-5278b3c105ad3af5b065dfd39f8a2a789042539f58a7c1cba3f2e44c0ac7a92b.js\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n <link rel=\"icon\" type=\"image/x-icon\" href=\"https://media2.dev.to/dynamic/image/width=32,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"152x152\" href=\"https://media2.dev.to/dynamic/image/width=152,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"https://media2.dev.to/dynamic/image/width=180,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link rel=\"apple-touch-icon\" sizes=\"167x167\" href=\"https://media2.dev.to/dynamic/image/width=167,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <link href=\"https://media2.dev.to/dynamic/image/width=192,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"192x192\">\n <link href=\"https://media2.dev.to/dynamic/image/width=128,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" rel=\"icon\" sizes=\"128x128\">\n <meta name=\"apple-mobile-web-app-title\" content=\"dev.to\">\n <meta name=\"application-name\" content=\"dev.to\">\n <meta name=\"theme-color\" content=\"#ffffff\" media=\"(prefers-color-scheme: light)\">\n <meta name=\"theme-color\" content=\"#000000\" media=\"(prefers-color-scheme: dark)\">\n <link rel=\"search\" href=\"https://dev.to/open-search.xml\" type=\"application/opensearchdescription+xml\" title=\"DEV Community\">\n\n <meta property=\"forem:name\" content=\"DEV Community\">\n <meta property=\"forem:logo\" content=\"https://media2.dev.to/dynamic/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\">\n <meta property=\"forem:domain\" content=\"dev.to\">\n \n </head>\n <body class=\"sans-serif-article-body default-header\" data-user-status=\"logged-out\" data-is-root-subforem=\"false\" data-subforem-id=\"1\" data-side-nav-visible=\"true\" data-community-name=\"DEV Community\" data-subscription-icon=\"https://assets.dev.to/assets/subscription-icon-805dfa7ac7dd660f07ed8d654877270825b07a92a03841aa99a1093bd00431b2.png\" data-locale=\"en\" data-honeybadger-key=\"hbp_nqu4Y66HuEKlD6YRGssZuRQnPOjDm50J8Zkr\" data-deployed-at=\"2026-03-19T20:49:25Z\" data-latest-commit-id=\"f47ae62cb2f25a529b1137abf7975d0e86324bf1\" data-ga-tracking=\"UA-71991109-1\" data-cookie-banner-user-context=\"logged_out_only\" data-cookie-banner-platform-context=\"off\" data-algolia-id=\"PRSOBFP46H\" data-algolia-search-key=\"9aa7d31610cba78851c9b1f63776a9dd\" data-algolia-display=\"true\" data-dynamic-url-component=\"bmar11\" data-ga4-tracking-id=\"G-TYEM8Y3JN3\">\n \n <script>\n if (navigator.userAgent === 'ForemWebView/1' || window.frameElement) {\n document.body.classList.add(\"hidden-shell\");\n }\n if (new Date() > new Date(\"2026-02-04T09:00:00-05:00\")) {\n document.body.dataset.sideNavVisible = \"false\";\n } \n </script>\n\n <link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css\" media=\"all\" id=\"secondary-minimal-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css\" media=\"all\" id=\"secondary-views-stylesheet\">\n<link rel=\"stylesheet\" href=\"https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css\" media=\"all\" id=\"secondary-crayons-stylesheet\">\n\n <div id=\"body-styles\">\n <style>\n :root {\n --accent-brand-lighter-rgb: 80, 99, 301;\n --accent-brand-rgb: 59, 73, 223;\n --accent-brand-darker-rgb: 47, 58, 178;\n }\n </style>\n </div>\n <div id=\"audiocontent\" data-podcast=\"\">\n \n </div>\n <div class=\"navigation-progress\" id=\"navigation-progress\"></div>\n\n<header id=\"topbar\" class=\"crayons-header topbar print-hidden\">\n <span id=\"route-change-target\" tabindex=\"-1\"></span>\n <a href=\"#main-content\" class=\"skip-content-link\">Skip to content</a>\n <div class=\"crayons-header__container\">\n <span class=\"inline-block m:hidden \">\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger mx-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\" class=\"crayons-icon\"><title id=\"a9syj4ev9usghrj2cupgvw6aabjusk1t\">Navigation menu</title>\n <path d=\"M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z\"></path>\n</svg>\n\n </button>\n </span>\n <a href=\"/\" class=\"site-logo\" aria-label=\"DEV Community Home\">\n <img class=\"site-logo__img\" src=\"https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png\" style=\"aspect-ratio: 10 / 8\" alt=\"DEV Community\">\n</a>\n\n\n <div class=\"crayons-header--search js-search-form\" id=\"header-search\">\n <form accept-charset=\"UTF-8\" method=\"get\" action=\"/search\" role=\"search\">\n <div class=\"crayons-fields crayons-fields--horizontal\">\n <div class=\"crayons-field flex-1 relative\">\n <input id=\"search-input\" class=\"crayons-header--search-input crayons-textfield js-search-input\" type=\"text\" name=\"q\" placeholder=\"Find related posts...\" autocomplete=\"off\">\n <button type=\"submit\" aria-label=\"Search\" class=\"c-btn c-btn--icon-alone absolute inset-px right-auto mt-0 py-0\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"asynyx1qxw5bjg880ehhj6dhqa8iosdc\">Search</title>\n <path d=\"M18.031 16.617l4.283 4.282-1.415 1.415-4.282-4.283A8.96 8.96 0 0111 20c-4.968 0-9-4.032-9-9s4.032-9 9-9 9 4.032 9 9a8.96 8.96 0 01-1.969 5.617zm-2.006-.742A6.977 6.977 0 0018 11c0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7a6.977 6.977 0 004.875-1.975l.15-.15z\"></path>\n</svg>\n\n </button>\n\n <a class=\"crayons-header--search-brand-indicator\" href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral\" target=\"_blank\" rel=\"noopener noreferrer\">\n Powered by Algolia\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"Layer_1\" width=\"24\" height=\"24\" viewBox=\"0 0 500 500.34\" role=\"img\" aria-labelledby=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\" aria-hidden=\"true\" class=\"crayons-icon\"><title id=\"amiqq4aj0vjjtdk14z4cq9fy0cjejhz5\">Search</title>\n <defs></defs><path class=\"cls-1\" d=\"M250,0C113.38,0,2,110.16,.03,246.32c-2,138.29,110.19,252.87,248.49,253.67,42.71,.25,83.85-10.2,120.38-30.05,3.56-1.93,4.11-6.83,1.08-9.52l-23.39-20.74c-4.75-4.22-11.52-5.41-17.37-2.92-25.5,10.85-53.21,16.39-81.76,16.04-111.75-1.37-202.04-94.35-200.26-206.1,1.76-110.33,92.06-199.55,202.8-199.55h202.83V407.68l-115.08-102.25c-3.72-3.31-9.43-2.66-12.43,1.31-18.47,24.46-48.56,39.67-81.98,37.36-46.36-3.2-83.92-40.52-87.4-86.86-4.15-55.28,39.65-101.58,94.07-101.58,49.21,0,89.74,37.88,93.97,86.01,.38,4.28,2.31,8.28,5.53,11.13l29.97,26.57c3.4,3.01,8.8,1.17,9.63-3.3,2.16-11.55,2.92-23.6,2.07-35.95-4.83-70.39-61.84-127.01-132.26-131.35-80.73-4.98-148.23,58.18-150.37,137.35-2.09,77.15,61.12,143.66,138.28,145.36,32.21,.71,62.07-9.42,86.2-26.97l150.36,133.29c6.45,5.71,16.62,1.14,16.62-7.48V9.49C500,4.25,495.75,0,490.51,0H250Z\"></path>\n</svg>\n\n </a>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"flex items-center h-100 ml-auto\">\n <div class=\"flex\" id=\"authentication-top-nav-actions\">\n <span class=\"hidden m:block\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"c-link c-link--block mr-2 whitespace-nowrap ml-auto\" data-no-instant=\"\">\n Log in\n </a>\n </span>\n\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" data-tracking-id=\"ca_top_nav\" data-tracking-source=\"top_navbar\" class=\"c-cta c-cta--branded whitespace-nowrap mr-2\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n </div>\n</header>\n\n<div class=\"hamburger\">\n <div class=\"hamburger__content\">\n <header class=\"hamburger__content__header\">\n <h2 class=\"fs-l fw-bold flex-1 break-word lh-tight\">DEV Community</h2>\n\n <button class=\"c-btn c-btn--icon-alone js-hamburger-trigger shrink-0\" aria-label=\"Close\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7jqca81wlh4sunhyocm20yteah4aqdu\" aria-hidden=\"true\" class=\"crayons-icon c-btn__icon\"><title id=\"a7jqca81wlh4sunhyocm20yteah4aqdu\">Close</title><path d=\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636l4.95 4.95z\"></path></svg>\n\n </button>\n </header>\n\n <div class=\"p-2 js-navigation-links-container\" id=\"authentication-hamburger-actions\">\n </div>\n </div>\n <div class=\"hamburger__overlay js-hamburger-trigger\"></div>\n</div>\n\n\n <div id=\"active-broadcast\" class=\"broadcast-wrapper\"></div>\n<div id=\"page-content\" class=\"wrapper comments comments-index articletag-python articletag-learning articletag-beginners articletag-webdev articleuser-102760\" data-current-page=\"comments-index\">\n <div id=\"page-content-inner\" data-internal-nav=\"false\">\n <div id=\"page-route-change\" class=\"screen-reader-only\" aria-live=\"polite\" aria-atomic=\"true\"></div>\n\n <script src=\"https://assets.dev.to/assets/postCommentsPage-9cadd9d7d759106335e33acfc211c369baacfee925030a4f39878cc99c020166.js\" defer=\"defer\"></script>\n\n \n<script src=\"https://assets.dev.to/assets/commentDropdowns-7a28d130e5b78d38b30a9495a964003a66bd64fa455fc70b766d69cf06b9ba24.js\" defer=\"defer\"></script>\n\n<div class=\"crayons-layout crayons-layout--limited-l gap-0\" data-follow-button-container=\"true\">\n <span id=\"comment-article-indicator\" data-article-id=\"172117\"></span>\n\n <div id=\"response-templates-data\" class=\"hidden\"></div>\n <script src=\"https://assets.dev.to/assets/commentsDisplay-87ce1e7063aee6b53f3b5aaa8534bfbe1fa8456c5df828c9bdc224569025c5e3.js\" defer=\"defer\"></script>\n <header class=\"p-2 pb-4 m:p-6 m:pb-6 crayons-card crayons-card--secondary crayons-layout__content s:mx-2 m:mx-4 -mb-1 z-0\">\n <h1 class=\"crayons-subtitle-1 mb-4\">\n <span class=\"fw-normal color-base-60\">Discussion on: </span><span>Django Cheat Sheet: Keep Credentials Secure with Environment Variables</span>\n </h1>\n <div class=\"flex\">\n <a class=\"crayons-btn crayons-btn--outlined mr-2\" href=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5\">View post</a>\n </div>\n </header>\n\n\n <section class=\"crayons-card text-padding min-w-0 z-elevate\" id=\"comments-container\" data-commentable-id=\"172117\" data-commentable-type=\"Article\" data-commentable-author-id=\"102760\" data-commentable-co-author-ids=\"\">\n\n\n <div class=\"comments\" id=\"comment-trees-container\">\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-0\n root\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"m:mx-1 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\" class=\"crayons-icon expanded\"><title id=\"am0hfruw7t7kbloxq90gm2u9chkb8rff\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\" class=\"crayons-icon collapsed\"><title id=\"a60pbxfju0t7z027ra8mfcb5i35wrg6s\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273144\" class=\"\n comment single-comment-node\n \n root\n comment--deep-0\n \n \" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fe1e\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar m:crayons-avatar--l mt-4 m:mt-3\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273144\" aria-controls=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-273144\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:02:26Z\" class=\"date-short-year\">\n Sep 17 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273144\" aria-controls=\"comment-dropdown-273144\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\" class=\"crayons-icon pointer-events-none\"><title id=\"akgq3k15dqu49j2fytbaaltxd0kpvll8\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273144\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273144\" data-comment-url=\"https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fe1e/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fe1e\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>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</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273144\" data-comment-id=\"273144\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3btu01xca2urgip0ej7lt2tshj6bs28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3btu01xca2urgip0ej7lt2tshj6bs28\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a207ojso91c7liu3pwqmlfkjddpc2zco\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a207ojso91c7liu3pwqmlfkjddpc2zco\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273144\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe1e\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273144\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahwvmev4joq47o1xnqyy2hn24vhmxtb4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amu86j05tb5rto5dwbol17xfyeew32qd\" class=\"crayons-icon expanded\"><title id=\"amu86j05tb5rto5dwbol17xfyeew32qd\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"agcra525od8yaymvu4prqj30npmizg4n\" class=\"crayons-icon collapsed\"><title id=\"agcra525od8yaymvu4prqj30npmizg4n\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-273163\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-comment-author-id=\"102760\" data-content-user-id=\"102760\">\n <a name=\"comment-fe27\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/jamestimmins\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" alt=\"jamestimmins profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/jamestimmins\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n James Timmins\n </span>\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -mr-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-273163\" aria-controls=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"James Timmins profile details\">\n James Timmins\n \n </button>\n <div id=\"comment-profile-preview-content-273163\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/jamestimmins\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F102760%2F1bb93970-52c8-4043-8f54-e0ae91c54bcd.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n James Timmins\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":102760,"name":"James Timmins"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: James Timmins\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-09-19T16:58:25Z\" class=\"date\">Sep 19, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n <span class=\"crayons-hover-tooltip inline-block spec-op-author -ml-2\" data-tooltip=\"Author\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" class=\"crayons-icon\">\n <path d=\"M12 8.25a6 6 0 110 12 6 6 0 010-12zm0 2.625l-.992 2.01-2.218.322 1.605 1.564-.379 2.21L12 15.937l1.984 1.043-.379-2.209 1.605-1.564-2.218-.323L12 10.875zm.75-6.376l3.75.001v2.25l-1.022.854a7.45 7.45 0 00-2.728-.817V4.5zm-1.5 0v2.288a7.451 7.451 0 00-2.727.816L7.5 6.75V4.5h3.75z\"></path>\n</svg>\n\n </span>\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-17T18:29:14Z\" class=\"date-short-year\">\n Sep 17 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-273163\" aria-controls=\"comment-dropdown-273163\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\" class=\"crayons-icon pointer-events-none\"><title id=\"a7gmp3o0mt8lu9t1omyan1swl0w3k035\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-273163\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to James Timmins's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"102760\" data-action=\"settings-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/settings\" aria-label=\"Go to James Timmins's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"102760\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"273163\" data-comment-url=\"https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Hide James Timmins's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/jamestimmins/comment/fe27/mod\" aria-label=\"Moderate James Timmins's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/jamestimmins/comment/fe27\" aria-label=\"Report James Timmins's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you can do.</p>\n\n<ol>\n<li>Explicitly check for a string value. DEBUG = (os.getenv(\"DEBUG\") == 'true')</li>\n<li>Cast the val to a boolean DEBUG = bool(os.getenv(\"DEBUG\")), and use an empty string to denote a false value <code>DEBUG=''</code>.</li>\n<li>Use a more fully-featured package like <a href=\"https://github.com/joke2k/django-environ\" rel=\"nofollow\">django-environ</a>. There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).</li>\n</ol>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-273163\" data-comment-id=\"273163\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"acgeuroqpao89v1gqag5tnag1lzjbopd\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"acgeuroqpao89v1gqag5tnag1lzjbopd\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"alpwyiy7hd86mwy98dvfifgf6axh83az\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"alpwyiy7hd86mwy98dvfifgf6axh83az\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">7</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"273163\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fe27\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-273163\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a37arejzrbksr1ryfcmai2lxbi18wfv9\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\" class=\"crayons-icon expanded\"><title id=\"ad4sa0cqju63trsnkxpdxa4f4dsoh3yn\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\" class=\"crayons-icon collapsed\"><title id=\"a3npi4krrvgdd27bjdm7498cnrep1iw0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-359014\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-comment-author-id=\"119873\" data-content-user-id=\"119873\">\n <a name=\"comment-kb26\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/bhupesh\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" alt=\"bhupesh profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/bhupesh\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Bhupesh Varshney \ud83d\udc7e\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-359014\" aria-controls=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Bhupesh Varshney \ud83d\udc7e profile details\">\n Bhupesh Varshney \ud83d\udc7e\n \n </button>\n <div id=\"comment-profile-preview-content-359014\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #0000bc; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/bhupesh\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F119873%2F5e10019f-97c6-4a67-9887-38d45b09bcf0.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Bhupesh Varshney \ud83d\udc7e\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":119873,"name":"Bhupesh Varshney \ud83d\udc7e"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Bhupesh Varshney \ud83d\udc7e\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Email\n </div>\n <div class=\"value\">\n <a href=\"mailto:\"></a>\n </div>\n </li>\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India \ud83c\uddee\ud83c\uddf3\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-12-05T15:02:51Z\" class=\"date\">Dec 5, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2020-01-16T08:59:45Z\" class=\"date-short-year\">\n Jan 16 '20\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-359014\" aria-controls=\"comment-dropdown-359014\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\" class=\"crayons-icon pointer-events-none\"><title id=\"adnjyxwg4pvhdki3fg0akoitopv6pfg1\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-359014\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-kb26\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Bhupesh Varshney \ud83d\udc7e's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"119873\" data-action=\"settings-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/settings\" aria-label=\"Go to Bhupesh Varshney \ud83d\udc7e's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"119873\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"359014\" data-comment-url=\"https://dev.to/bhupesh/comment/kb26\" aria-label=\"Hide Bhupesh Varshney \ud83d\udc7e's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/bhupesh/comment/kb26/mod\" aria-label=\"Moderate Bhupesh Varshney \ud83d\udc7e's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/bhupesh/comment/kb26\" aria-label=\"Report Bhupesh Varshney \ud83d\udc7e's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>thanks for this</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-359014\" data-comment-id=\"359014\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aaqd7b0m9ebsm08ygyp5ap1r776nxmue\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"ab3h6paxnc5enxpz5190u3riq9y1tkc4\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"359014\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/kb26\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-359014\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aceqw4gqgqb3jxi544mvbyzdyyv9psv4\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7qkh3osze31p5tx1sa37ss9h410885k\" class=\"crayons-icon expanded\"><title id=\"a7qkh3osze31p5tx1sa37ss9h410885k\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ap76c9hto972y44k19vq49h1o4ipe73a\" class=\"crayons-icon collapsed\"><title id=\"ap76c9hto972y44k19vq49h1o4ipe73a\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1107596\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-comment-author-id=\"1215611\" data-content-user-id=\"1215611\">\n <a name=\"comment-2b0bm\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" alt=\"eftehassanpp profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/eftehassanpp\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n eftehassanpp\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1107596\" aria-controls=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"eftehassanpp profile details\">\n eftehassanpp\n \n </button>\n <div id=\"comment-profile-preview-content-1107596\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/eftehassanpp\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1215611%2Fb858d6d6-1f55-4400-b53f-0bf54227e84b.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n eftehassanpp\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1215611,"name":"eftehassanpp"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: eftehassanpp\" aria-pressed=\"false\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Full stack Web Developer\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2023-11-21T21:33:36Z\" class=\"date\">Nov 21, 2023</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2023-11-21T21:37:14Z\" class=\"date-short-year\">\n Nov 21 '23\n </time>\n\n <span class=\"hidden m:inline-block\">\u2022 Edited on <time datetime=\"2023-11-21T21:37:49Z\" class=\"date-no-year\">Nov 21</time></span>\n <span class=\"m:hidden\">\u2022 Edited</span>\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1107596\" aria-controls=\"comment-dropdown-1107596\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"anqysk9wz3k463ox4nph62xear0d3p4w\" class=\"crayons-icon pointer-events-none\"><title id=\"anqysk9wz3k463ox4nph62xear0d3p4w\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1107596\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2b0bm\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to eftehassanpp's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1215611\" data-action=\"settings-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/settings\" aria-label=\"Go to eftehassanpp's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1215611\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1107596\" data-comment-url=\"https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Hide eftehassanpp's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/eftehassanpp/comment/2b0bm/mod\" aria-label=\"Moderate eftehassanpp's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/eftehassanpp/comment/2b0bm\" aria-label=\"Report eftehassanpp's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Its simple. env always stores string in not only just python but also in javascript. simply parse the env value with json<br>\n<strong>import json</strong><br>\n<strong>DEBUG = json.loads(os.getenv(\"DEBUG\"))<br>\nif DEBUG:<br>\n print(\"Debugging\")</strong></p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1107596\" data-comment-id=\"1107596\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ahjjbveswr6gcaqryfz4gyd2zgdwm4ze\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abwchupp63so33156spria10r4l8m637\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"abwchupp63so33156spria10r4l8m637\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\"></span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1107596\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2b0bm\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1107596\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a3k1um56f8mzdqx2wg98m4ysf5jotnf5\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\" class=\"crayons-icon expanded\"><title id=\"a90ink3joapm9ddh1hq32wcrnt0gvn71\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2qx85oskkj1aic7osf7czppfjrosxg3\" class=\"crayons-icon collapsed\"><title id=\"a2qx85oskkj1aic7osf7czppfjrosxg3\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274947\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-comment-author-id=\"230500\" data-content-user-id=\"230500\">\n <a name=\"comment-fgin\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/anshsaini\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" alt=\"anshsaini profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/anshsaini\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Ansh Saini\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274947\" aria-controls=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Ansh Saini profile details\">\n Ansh Saini\n \n </button>\n <div id=\"comment-profile-preview-content-274947\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #aaa1e0; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/anshsaini\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F230500%2F84ffe7e4-6e87-4cc4-b4d0-3f97a92fa6b8.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Ansh Saini\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":230500,"name":"Ansh Saini"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Ansh Saini\" aria-pressed=\"false\">Follow</button>\n</div>\n <div class=\"color-base-70\">\n Here to share my knowledge and learn new things, then share those as well.\n </div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n New Delhi, India\n </div>\n </li>\n <li>\n <div class=\"key\">\n Education\n </div>\n <div class=\"value\">\n Bachelor's Degree in Computer Science\n </div>\n </li>\n <li>\n <div class=\"key\">\n Work\n </div>\n <div class=\"value\">\n Software Development Manager at Suraasa\n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-09-16T11:14:42Z\" class=\"date\">Sep 16, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T18:08:31Z\" class=\"date-short-year\">\n Sep 19 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274947\" aria-controls=\"comment-dropdown-274947\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\" class=\"crayons-icon pointer-events-none\"><title id=\"ajnrdgcw29lhl494uqrcvs642eq8pcfs\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274947\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgin\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Ansh Saini's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"230500\" data-action=\"settings-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/settings\" aria-label=\"Go to Ansh Saini's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"230500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274947\" data-comment-url=\"https://dev.to/anshsaini/comment/fgin\" aria-label=\"Hide Ansh Saini's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/anshsaini/comment/fgin/mod\" aria-label=\"Moderate Ansh Saini's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/anshsaini/comment/fgin\" aria-label=\"Report Ansh Saini's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Okay I'm surprised I didn't know that! Thanks. This'll save me some future headaches.</p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274947\" data-comment-id=\"274947\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"ajn1movjhp9pjktahx5eie34nb5xkz92\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"ajn1movjhp9pjktahx5eie34nb5xkz92\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"afu01rt9305glx5lva9zn1eoy3gmcvv8\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274947\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgin\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274947\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"asi6g1r8jhe0pamnlr7xyglvrmazj0ta\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\" class=\"crayons-icon expanded\"><title id=\"a937zwu2zlm2i1loif46c4ce0g8yvgeb\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\" class=\"crayons-icon collapsed\"><title id=\"atrycgt3bqhom1hcs1p3jm4bkt5ix4ra\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-274987\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-comment-author-id=\"108601\" data-content-user-id=\"108601\">\n <a name=\"comment-fgkb\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/nicolaerario\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" alt=\"nicolaerario profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/nicolaerario\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Nicola Erario\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-274987\" aria-controls=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Nicola Erario profile details\">\n Nicola Erario\n \n </button>\n <div id=\"comment-profile-preview-content-274987\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #160533; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/nicolaerario\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F108601%2Fb5e26ac6-29b1-42d0-a94a-948398b76486.png\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Nicola Erario\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":108601,"name":"Nicola Erario"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Nicola Erario\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Location\n </div>\n <div class=\"value\">\n Italy \ud83c\uddee\ud83c\uddf9 \n </div>\n </li>\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2018-10-18T15:20:33Z\" class=\"date\">Oct 18, 2018</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2019-09-19T19:03:55Z\" class=\"date-short-year\">\n Sep 19 '19\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-274987\" aria-controls=\"comment-dropdown-274987\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\" class=\"crayons-icon pointer-events-none\"><title id=\"ascp2zgq843l3hjiwbkueo1hyk2e9y4r\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-274987\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fgkb\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Nicola Erario's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"108601\" data-action=\"settings-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/settings\" aria-label=\"Go to Nicola Erario's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"108601\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"274987\" data-comment-url=\"https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Hide Nicola Erario's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/nicolaerario/comment/fgkb/mod\" aria-label=\"Moderate Nicola Erario's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/nicolaerario/comment/fgkb\" aria-label=\"Report Nicola Erario's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n \n\n<p>Sure! After time spent to True this, False that... and your app lives of it\u2019s own life </p>\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-274987\" data-comment-id=\"274987\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a90c9akrxlwhzqlm6zbh2cl437mm8m4w\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a7u21cjq73ezwmhylwvn3maoxmjb805x\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">2</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"274987\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/fgkb\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-274987\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aqbnn7m38ze35s566cpzbxp8zc67xkyj\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-1\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ab4azljunvkclho839543mrgdhe8uanf\" class=\"crayons-icon expanded\"><title id=\"ab4azljunvkclho839543mrgdhe8uanf\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\" class=\"crayons-icon collapsed\"><title id=\"a18zu1yfzvcynrxsx4j1npp6npq3sdl7\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-712982\" class=\"\n comment single-comment-node\n \n child\n comment--deep-1\n \n \" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-comment-author-id=\"201500\" data-content-user-id=\"201500\">\n <a name=\"comment-1eeia\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/guettli\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" alt=\"guettli profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/guettli\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n Thomas G\u00fcttler\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-712982\" aria-controls=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"Thomas G\u00fcttler profile details\">\n Thomas G\u00fcttler\n \n </button>\n <div id=\"comment-profile-preview-content-712982\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #002a9e; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/guettli\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F201500%2F16f2bb59-0255-428d-af03-a7de94e7c5cc.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n Thomas G\u00fcttler\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":201500,"name":"Thomas G\u00fcttler"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: Thomas G\u00fcttler\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2019-07-25T13:33:46Z\" class=\"date\">Jul 25, 2019</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2021-05-13T19:37:19Z\" class=\"date-short-year\">\n May 13 '21\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-712982\" aria-controls=\"comment-dropdown-712982\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\" class=\"crayons-icon pointer-events-none\"><title id=\"a7alnuoz5ampzvua5h7ww511cbk31t1c\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-712982\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-1eeia\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to Thomas G\u00fcttler's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"201500\" data-action=\"settings-button\" data-path=\"https://dev.to/guettli/comment/1eeia/settings\" aria-label=\"Go to Thomas G\u00fcttler's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"201500\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"712982\" data-comment-url=\"https://dev.to/guettli/comment/1eeia\" aria-label=\"Hide Thomas G\u00fcttler's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/guettli/comment/1eeia/mod\" aria-label=\"Moderate Thomas G\u00fcttler's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/guettli/comment/1eeia\" aria-label=\"Report Thomas G\u00fcttler's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>Don't ask my why the author did not accept my PR: <a href=\"https://github.com/theskumar/python-dotenv/pull/293/files\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">github.com/theskumar/python-dotenv...</a></p>\n\n<h3>\n <a name=\"converting-types\" href=\"#converting-types\">\n </a>\n Converting types\n</h3>\n\n<p>The library reads and provides strings. If you need for example a boolean, it is up to you to convert the value.</p>\n\n<p>Example:<br>\n</p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from</span> <span class=\"n\">distutils.util</span> <span class=\"kn\">import</span> <span class=\"n\">strtobool</span>\n<span class=\"n\">DEBUG</span> <span class=\"o\">=</span> <span class=\"nf\">bool</span><span class=\"p\">(</span><span class=\"nf\">strtobool</span><span class=\"p\">(</span><span class=\"n\">os</span><span class=\"p\">.</span><span class=\"nf\">getenv</span><span class=\"p\">(</span><span class=\"sh\">'</span><span class=\"s\">DEBUG</span><span class=\"sh\">'</span><span class=\"p\">,</span> <span class=\"sh\">'</span><span class=\"s\">True</span><span class=\"sh\">'</span><span class=\"p\">)))</span>\n</code></pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>Enter fullscreen mode</title>\n <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>Exit fullscreen mode</title>\n <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"></path>\n</svg>\n\n</div>\n</div>\n</div>\n\n\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-712982\" data-comment-id=\"712982\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a1mk97ycs93jegn3xavxhb8xfgsfkw3d\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"amicadhcf0ecg45qix2h8bneakx329li\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"amicadhcf0ecg45qix2h8bneakx329li\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">4</span><span class=\"reactions-label hidden m:inline-block\"> likes</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"712982\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/1eeia\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-712982\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"aix6zq952ei8477ykobai8errhmtgk28\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"aix6zq952ei8477ykobai8errhmtgk28\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\" class=\"crayons-icon expanded\"><title id=\"at7u3o4n8y9ewox1cowczmwqf7t9xj8e\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aqqgamrqupo07w83avfsaypdfc38f2h8\" class=\"crayons-icon collapsed\"><title id=\"aqqgamrqupo07w83avfsaypdfc38f2h8\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1322245\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-comment-author-id=\"2562290\" data-content-user-id=\"2562290\">\n <a name=\"comment-2n5pf\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" alt=\"derrick_k_429f36beeddff99 profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/derrick_k_429f36beeddff99\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n derrick k\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1322245\" aria-controls=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"derrick k profile details\">\n derrick k\n \n </button>\n <div id=\"comment-profile-preview-content-1322245\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/derrick_k_429f36beeddff99\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2562290%2F867bf17c-a86a-46a3-b41a-f135afb68ef0.jpg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n derrick k\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":2562290,"name":"derrick k"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: derrick k\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-12-12T14:19:12Z\" class=\"date\">Dec 12, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2025-04-19T04:12:37Z\" class=\"date-short-year\">\n Apr 19 '25\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1322245\" aria-controls=\"comment-dropdown-1322245\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\" class=\"crayons-icon pointer-events-none\"><title id=\"ah7e12qgpvpgv7lg5h12h1hg8gsc35dy\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1322245\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2n5pf\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to derrick k's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"2562290\" data-action=\"settings-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/settings\" aria-label=\"Go to derrick k's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"2562290\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1322245\" data-comment-url=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Hide derrick k's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf/mod\" aria-label=\"Moderate derrick k's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/derrick_k_429f36beeddff99/comment/2n5pf\" aria-label=\"Report derrick k's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>I agree, it works perfectly</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon-left crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1322245\" data-comment-id=\"1322245\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a6w8iq5f90v5v8mu1tvdl5prq64nfxzn\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"a2jrd7kzxnp7are2sy91mt0g2y1op9e2\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\">1</span><span class=\"reactions-label hidden m:inline-block\"> like</span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1322245\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2n5pf\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1322245\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a71tibt5ws2dqqc3quhiva4b5wgoo31c\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n <details class=\"comment-wrapper js-comment-wrapper comment-wrapper--deep-2\n child\n \" open=\"\">\n <summary aria-label=\"Toggle this comment (and replies)\" data-tracking-name=\"expand_comment_toggle\">\n <span class=\"mx-0 inline-block align-middle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\" class=\"crayons-icon expanded\"><title id=\"abi2ffrim2fmctcrxzumsbpv3ppxw8hx\">Collapse</title>\n <path d=\"M12 10.677L8 6.935 9 6l3 2.807L15 6l1 .935-4 3.742zm0 4.517L9 18l-1-.935 4-3.742 4 3.742-1 .934-3-2.805z\"></path>\n</svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"atcipprtb6yh2byyphfnhsbchu8x18k0\" class=\"crayons-icon collapsed\"><title id=\"atcipprtb6yh2byyphfnhsbchu8x18k0\">Expand</title>\n <path d=\"M12 18l-4-3.771 1-.943 3 2.829 3-2.829 1 .943L12 18zm0-10.115l-3 2.829-1-.943L12 6l4 3.771-1 .942-3-2.828z\"></path>\n</svg>\n\n </span>\n <span class=\"js-collapse-comment-content inline-block align-middle\"></span>\n </summary>\n <div id=\"comment-node-1228782\" class=\"\n comment single-comment-node\n \n child\n comment--deep-2\n \n \" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-comment-author-id=\"1625827\" data-content-user-id=\"1625827\">\n <a name=\"comment-2hnim\" style=\"position: absolute; top: -8px;\"> </a>\n \n<div class=\"comment__inner\">\n <a href=\"https://dev.to/niceguydave\" class=\"shrink-0 crayons-avatar mt-4\">\n <img class=\"crayons-avatar__image\" width=\"32\" height=\"32\" src=\"https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" alt=\"niceguydave profile image\" loading=\"lazy\">\n </a>\n\n\n <div class=\"inner-comment comment__details\">\n <div class=\"comment__content crayons-card\">\n \n\n\n <div class=\"comment__header\">\n <a href=\"https://dev.to/niceguydave\" class=\"crayons-link crayons-link--secondary flex items-center fw-medium m:hidden\">\n <span class=\"js-comment-username\">\n David Talbot\n </span>\n </a>\n <div class=\"profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:block\">\n <button id=\"comment-profile-preview-trigger-1228782\" aria-controls=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__trigger p-1 -my-1 -ml-1 crayons-btn crayons-btn--ghost\" aria-label=\"David Talbot profile details\">\n David Talbot\n \n </button>\n <div id=\"comment-profile-preview-content-1228782\" class=\"profile-preview-card__content p-4 pt-0 branded-7 crayons-dropdown\" style=\"--card-color: #000000; border-top-color: var(--card-color);\" data-testid=\"profile-preview-card\" data-repositioning-dropdown=\"true\">\n <div class=\"gap-4 grid\">\n <div class=\"-mt-4\">\n <a href=\"/niceguydave\" class=\"flex\">\n <span class=\"crayons-avatar crayons-avatar--xl mr-2 shrink-0\">\n <img src=\"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1625827%2F3226611b-f9b2-4e94-aa3d-94f858cd0a9f.jpeg\" class=\"crayons-avatar__image\" alt=\"\" loading=\"lazy\">\n </span>\n <span class=\"crayons-link crayons-subtitle-2 mt-5\">\n David Talbot\n \n </span>\n </a>\n</div>\n\n<div class=\"print-hidden\">\n <button name=\"button\" type=\"button\" data-info=\"{"className":"User","style":"","id":1625827,"name":"David Talbot"}\" class=\"crayons-btn follow-action-button whitespace-nowrap w-100 follow-user\" aria-label=\"Follow user: David Talbot\" aria-pressed=\"false\">Follow</button>\n</div>\n\n <div class=\"user-metadata-details\">\n <ul class=\"user-metadata-details-inner\">\n <li>\n <div class=\"key\">\n Joined\n </div>\n <div class=\"value\">\n <time datetime=\"2024-06-14T12:03:32Z\" class=\"date\">Jun 14, 2024</time>\n </div>\n </li>\n </ul>\n </div>\n\n </div>\n</div>\n\n\n </div>\n\n <span class=\"color-base-30 px-2 m:pl-0\" role=\"presentation\">\u2022</span>\n\n<a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"comment-date crayons-link crayons-link--secondary fs-s\">\n <time datetime=\"2024-09-04T09:09:28Z\" class=\"date-short-year\">\n Sep 4 '24\n </time>\n\n</a>\n\n\n <div class=\"comment__dropdown\" data-tracking-name=\"comment_dropdown\">\n <button id=\"comment-dropdown-trigger-1228782\" aria-controls=\"comment-dropdown-1228782\" aria-expanded=\"false\" class=\"dropbtn comment__dropdown-trigger crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon \" aria-label=\"Toggle dropdown menu\" aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"aclks2g2l2bow740sya6k4kff7mjsiuv\" class=\"crayons-icon pointer-events-none\"><title id=\"aclks2g2l2bow740sya6k4kff7mjsiuv\">Dropdown menu</title>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25 12a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm5.25 0a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zm3.75 1.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path>\n</svg>\n\n </button>\n <div id=\"comment-dropdown-1228782\" class=\"crayons-dropdown right-1 s:right-0 s:left-auto fs-base dropdown\">\n <ul class=\"m-0\">\n <li><a href=\"https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-2hnim\" class=\"crayons-link crayons-link--block permalink-copybtn\" aria-label=\"Copy link to David Talbot's comment\" data-no-instant=\"\">Copy link</a></li>\n <li class=\"comment-actions hidden\" data-user-id=\"1625827\" data-action=\"settings-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/settings\" aria-label=\"Go to David Talbot's comment settings\"></li>\n <li class=\"comment-actions hidden\" data-action=\"hide-button\" data-commentable-user-id=\"102760\" data-user-id=\"1625827\">\n <button class=\"flex justify-between crayons-link crayons-link--block w-100 bg-transparent border-0 hide-comment\" data-hide-type=\"hide\" data-comment-id=\"1228782\" data-comment-url=\"https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Hide David Talbot's comment\">\n Hide\n </button>\n </li>\n <li class=\"mod-actions hidden mod-actions-comment-button\" data-path=\"https://dev.to/niceguydave/comment/2hnim/mod\" aria-label=\"Moderate David Talbot's comment\"></li>\n <li class=\"report-abuse-link-wrapper\" data-path=\"/report-abuse?url=https://dev.to/niceguydave/comment/2hnim\" aria-label=\"Report David Talbot's comment as abusive or violating our code of conduct and/or terms and conditions\"></li>\n <li class=\"current-user-actions\"></li>\n </ul>\n </div>\n </div>\n</div>\n\n\n <div class=\"\n comment__body\n text-styles\n text-styles--secondary\n body\n \n \n \">\n <p>This is really helpful, thanks. Agreed\u2014it seems strange that your PR was rejected, given that variables with False values get (confusingly) cast to True.</p>\n\n\n </div>\n\n </div>\n\n <script>\n </script>\n\n <footer class=\"comment__footer print-hidden\">\n <button class=\"crayons-tooltip__activator relative crayons-btn crayons-btn--ghost crayons-btn--icon crayons-btn--s mr-1 reaction-like inline-flex reaction-button\" id=\"button-for-comment-1228782\" data-comment-id=\"1228782\" aria-label=\"like\" data-tracking-name=\"comment_heart_button\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"al2238nmtzvbhzqi2yywrpxgjdejg8pi\">Like comment: </title><path d=\"M18.884 12.595l.01.011L12 19.5l-6.894-6.894.01-.01A4.875 4.875 0 0112 5.73a4.875 4.875 0 016.884 6.865zM6.431 7.037a3.375 3.375 0 000 4.773L12 17.38l5.569-5.569a3.375 3.375 0 10-4.773-4.773L9.613 10.22l-1.06-1.062 2.371-2.372a3.375 3.375 0 00-4.492.25v.001z\"></path></svg>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" role=\"img\" aria-labelledby=\"apba72bjxcxsgi9yze6l7sl4vednujll\" class=\"crayons-icon crayons-icon reaction-icon--like reaction-icon reacted\"><title id=\"apba72bjxcxsgi9yze6l7sl4vednujll\">Like comment: </title>\n <path d=\"M5.116 12.595a4.875 4.875 0 015.56-7.68h-.002L7.493 8.098l1.06 1.061 3.181-3.182a4.875 4.875 0 016.895 6.894L12 19.5l-6.894-6.894.01-.01z\"></path>\n</svg>\n\n <span class=\"reactions-count\"></span><span class=\"reactions-label hidden m:inline-block\"></span>\n <span data-testid=\"tooltip\" class=\"crayons-tooltip__content\">\n Like\n </span>\n </button>\n\n <button class=\"actions crayons-btn crayons-btn--ghost crayons-btn--s crayons-btn--icon-left toggle-reply-form mr-1 inline-flex\" data-comment-id=\"1228782\" data-path=\"/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5/comments/2hnim\" data-tracking-name=\"comment_reply_button\" data-testid=\"reply-button-1228782\" rel=\"nofollow\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" role=\"img\" aria-labelledby=\"a310ex3qenwsd4ez2fili98qg92olabo\" class=\"crayons-icon reaction-icon not-reacted\"><title id=\"a310ex3qenwsd4ez2fili98qg92olabo\">Comment button</title><path d=\"M10.5 5h3a6 6 0 110 12v2.625c-3.75-1.5-9-3.75-9-8.625a6 6 0 016-6zM12 15.5h1.5a4.501 4.501 0 001.722-8.657A4.5 4.5 0 0013.5 6.5h-3A4.5 4.5 0 006 11c0 2.707 1.846 4.475 6 6.36V15.5z\"></path></svg>\n\n <span class=\"hidden m:inline-block\">Reply</span>\n </button>\n\n</footer>\n\n </div>\n</div>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n\n </div>\n </details>\n\n </div>\n\n </section>\n\n <div class=\"py-6\">\n <nav class=\"fs-s align-center block\" aria-label=\"Conduct controls\">\n <a href=\"/code-of-conduct\" class=\"crayons-link crayons-link--secondary\">Code of Conduct</a>\n <span class=\"opacity-25 px-2\" role=\"presentation\">\u2022</span>\n <a href=\"/report-abuse\" class=\"crayons-link crayons-link--secondary\">Report abuse</a>\n</nav>\n\n </div>\n</div>\n\n<div class=\"fullscreen-code js-fullscreen-code\"></div>\n\n<script>\n // Listen for resize events and match them to the iframe\n window.addEventListener('message', function(event) {\n if (event.origin.startsWith('https://platform.twitter.com')) {\n var iframes = document.getElementsByTagName('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (event.source === iframes[i].contentWindow) { // iframes which match the event\n var iframe = iframes[i];\n var data = event.data['twttr.embed'];\n if (data && data['method'] === 'twttr.private.resize' && data['params'] && data['params']['0']) {\n iframe.style.height = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.minHeight = data['params']['0']['height'] + 0.5 + 'px';\n iframe.style.width = data['params']['0']['width'] + 'px !important';\n }\n break;\n }\n }\n }\n}, false);\n\n// Legacy support: We have shifted up how we render tweets, but still need to render\n// the old way for old embed. This could eventually be removed.\nvar videoPreviews = document.getElementsByClassName(\"ltag__twitter-tweet__media__video-wrapper\");\n[].forEach.call(videoPreviews, function(el) {\n el.onclick = function(e) {\n var divHeight = el.offsetHeight;\n el.style.maxHeight = divHeight + \"px\";\n el.getElementsByClassName(\"ltag__twitter-tweet__media--video-preview\")[0].style.display = \"none\";\n el.getElementsByClassName(\"ltag__twitter-tweet__video\")[0].style.display = \"block\";\n el.getElementsByTagName(\"video\")[0].play();\n }\n});\nvar tweets = document.getElementsByClassName(\"ltag__twitter-tweet__main\");\n[].forEach.call(tweets, function(tweet){\n tweet.onclick = function(e) {\n if (e.target.nodeName == \"A\" || e.target.parentElement.nodeName == \"A\") {\n return;\n }\n window.open(tweet.dataset.url,\"_blank\");\n }\n});\n\n \n var waitingOnPodcast = setInterval(function() {\n if (typeof initializePodcastPlayback !== 'undefined') {\n initializePodcastPlayback();\n clearInterval(waitingOnPodcast);\n }\n}, 1);\n\n \n function activateRunkitTags() {\n if (!areAnyRunkitTagsPresent())\n return\n\n var checkRunkit = setInterval(function() {\n try {\n dynamicallyLoadRunkitLibrary()\n\n if (typeof(RunKit) === 'undefined') {\n return\n }\n\n replaceTagContentsWithRunkitWidget()\n clearInterval(checkRunkit);\n } catch(e) {\n console.error(e);\n clearInterval(checkRunkit);\n }\n }, 200);\n}\n\nfunction isRunkitTagAlreadyActive(runkitTag) {\n return runkitTag.querySelector(\"iframe\") !== null;\n};\n\nfunction areAnyRunkitTagsPresent() {\n var presentRunkitTags = document.getElementsByClassName(\"runkit-element\");\n\n return presentRunkitTags.length > 0\n}\n\nfunction replaceTagContentsWithRunkitWidget() {\n var targets = document.getElementsByClassName(\"runkit-element\");\n for (var i = 0; i < targets.length; i++) {\n if (isRunkitTagAlreadyActive(targets[i])) {\n continue;\n }\n\n var wrapperContent = targets[i].textContent;\n if (/^(<iframe src)/.test(wrapperContent) === false) {\n if (targets[i].children.length > 0) {\n var preamble = targets[i].children[0].textContent;\n var content = targets[i].children[1].textContent;\n targets[i].innerHTML = \"\";\n var notebook = RunKit.createNotebook({\n element: targets[i],\n source: content,\n preamble: preamble\n });\n }\n }\n }\n};\n\nfunction dynamicallyLoadRunkitLibrary() {\n if (typeof(dynamicallyLoadScript) === \"undefined\")\n return\n\n dynamicallyLoadScript(\"//embed.runkit.com\")\n}\n\nactivateRunkitTags();\n\n</script>\n<script async=\"\" src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n\n\n<div id=\"hide-comments-modal\" class=\"hidden\">\n <form id=\"hide-comments-modal__form\" class=\"hide-comments-modal__form\" data-type=\"json\" action=\"/comments/hide\" accept-charset=\"UTF-8\" data-remote=\"true\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"\u2713\" autocomplete=\"off\"><input type=\"hidden\" name=\"_method\" value=\"patch\" autocomplete=\"off\"><input type=\"hidden\" name=\"authenticity_token\" value=\"hg25dIFjPzui1OxJ2WScwcv9xygEWCNOSAgv9VDe1biuNmTIBT8nQynwXMKdBCg4Y8imO7iPaLUrGMasSI9ZfQ\" autocomplete=\"off\">\n <div class=\"hide-comments-modal__content\">\n <p class=\"pb-2\">\n Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's <a id=\"hide-comments-modal__comment-permalink\" href=\"#\">permalink</a>.\n </p>\n <label class=\"crayons-field crayons-field--checkbox my-2\">\n <input name=\"hide_children\" type=\"hidden\" value=\"0\" autocomplete=\"off\"><input class=\"hide_children crayons-checkbox\" type=\"checkbox\" value=\"1\" name=\"hide_children\" id=\"hide_children\">\n <p class=\"crayons-field__label\">Hide child comments as well</p>\n </label>\n <p class=\"pb-4 pt-2\">\n <button type=\"submit\" class=\"crayons-btn\">\n Confirm\n </button>\n </p>\n </div>\n</form> <p class=\"fs-s color-base-60\">For further actions, you may consider blocking this person and/or <a id=\"hide-comments-modal__report-link\" href=\"/report-abuse\">reporting abuse</a></p>\n</div>\n\n\n <div id=\"runtime-banner-container\"></div>\n <div id=\"i18n-translations\" data-translations=\"{"en":{"core":{"add_comment":"Add comment","beta":"beta","comment":"Comment","copy_link":"Copy link","edit_profile":"Edit profile","follow":"Follow","follow_back":"Follow back","following":"Following","like":"Like","loading":"loading...","reaction":"Reaction","report_abuse":"Report abuse","search":"Search","success_settings":"Successfully updated settings.","search_placeholder":"Search...","search_find_related_posts":"Find related posts...","search_powered_by":"Powered by Algolia","search_submit_search":"Submit search for advanced filtering.","search_displaying_recommendations":"Displaying Algolia Recommendations \u2014 Start typing to search","article_form_save_changes":"Save changes","article_form_schedule":"Schedule","article_form_publish":"Publish","article_form_loading_preview":"Loading preview","article_form_preview_loaded":"Preview loaded","comments_preview":"Preview","comments_continue_editing":"Continue editing","survey_enter_response":"Enter your response here...","survey_thank_you_response":"Thank you for your response.","survey_thank_you_completing":"Thank you for completing the survey!","dashboard_analytics_readers":"Readers","dashboard_analytics_comments":"Comments","dashboard_analytics_reactions":"Reactions","stats_by":"by","editor_new_title":"New post title here...","editor_body_placeholder":"Write your post content here...","tags_field_label":"Add up to 4 tags","tags_field_placeholder":"Add up to 4 tags...","counted_organization":{"one":"%{count} organization","other":"%{count} organizations"},"counted_user":{"one":"%{count} person","other":"%{count} people"},"not_following":"You're not following anyone","following_everyone":"You're following %{details} (everyone)","you_are_following":"You're following","and":"and"}}}\"></div>\n </div>\n</div>\n \n\n<footer id=\"footer\" class=\"crayons-footer print-hidden\">\n <div id=\"footer-container\" class=\"crayons-footer__container\">\n\n\n <style>\n .long-bb-body {\n max-height: calc(100vh - 200px);\n overflow: hidden;\n }\n .long-bb-bottom {\n height: 180px;\n background: linear-gradient(to top, var(--card-bg), transparent);\n margin-top: -180px;\n position:relative;\n z-index: 5;\n }\n</style>\n\n <div style=\"\" data-display-unit=\"\" data-id=\"146443\" data-category-click=\"click\" data-category-impression=\"impression\" data-context-type=\"home\" data-special=\"nothing\" data-article-id=\"\" data-type-of=\"in_house\">\n <div class=\"crayons-card crayons-card--secondary crayons-bb bb-placement js-billboard\" style=\"display: inline-flex; flex-direction: column; align-items: center; margin: 0 auto 2rem auto; width: fit-content; padding: 2rem;\">\n <p style=\"font-weight: bold; margin: 0 0 1rem 0;\">\n \ud83d\udc8e DEV Diamond Sponsors\n </p>\n <p style=\"font-size: 0.8em; margin: 0 0 2rem 0;\">\n Thank you to our Diamond Sponsors for supporting the DEV Community\n </p>\n \n <div style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem;\">\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://aistudio.google.com/?utm_source=partner&utm_medium=partner&utm_campaign=FY25-Global-DEVpartnership-sponsorship-AIS&utm_content=-&utm_term=-&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjlyhbdqehj3akhz166w.png\" alt=\"Google AI - Official AI Model and Platform Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 54px; padding: 10px;\" loading=\"lazy\" width=\"2048\" height=\"472\">\n </a>\n <p style=\"text-align: center;\">Google AI is the official AI Model and Platform Partner of DEV</p>\n </div>\n\n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://neon.tech/?ref=devto&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnl88cil6afxzmgwrgtt.png\" alt=\"Neon - Official Database Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Neon is the official database partner of DEV</p>\n </div>\n \n <div style=\"display: inline-block; max-width: 240px; font-size: 0.8em; font-style: italic; text-align: center; padding: 10px; background: #ffffff; border-radius: 5px; color: #404040;\">\n <a href=\"https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral&bb=146443\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: flex; justify-content: center; align-items: center;\">\n <img src=\"https://media2.dev.to/dynamic/image/width=880%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv30ephnolfvnlwgwm0yz.png\" alt=\"Algolia - Official Search Partner\" style=\"display: block; background: #ffffff; margin: 0 auto; width: auto; height: 60px; padding: 10px;\" loading=\"lazy\" width=\"2286\" height=\"596\">\n </a>\n <p style=\"text-align: center;\">Algolia is the official search partner of DEV</p>\n </div>\n </div>\n </div>\n </div>\n\n\n <p class=\"fs-s crayons-footer__description\">\n <a class=\"c-link c-link--branded fw-medium\" aria-label=\"DEV Community Home\" href=\"/\">DEV Community</a> \u2014 A space to discuss and keep up software development and manage your software career\n </p>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/\">\n Home\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/about\">\n About\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/contact\">\n Contact\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"https://mlh.io/\">\n MLH\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <ul class=\"footer__nav-links flex gap-2 justify-center flex-wrap fs-s p-0\" style=\"\">\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/code-of-conduct\">\n Code of Conduct\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/privacy\">\n Privacy Policy\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n <li class=\"footer__nav-link flex items-center\">\n <a href=\"/terms\">\n Terms of Use\n </a>\n <span class=\"dot ml-2\"></span>\n </li>\n\n </ul>\n\n <div class=\"fs-s\">\n <p>Built on <a class=\"c-link c-link--branded\" target=\"_blank\" rel=\"noopener\" href=\"https://www.forem.com\">Forem</a> \u2014 the <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/opensource\">open source</a> software that powers <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to\">DEV</a> and other inclusive communities.</p>\n <p>Made with love and <a target=\"_blank\" rel=\"noopener\" class=\"c-link c-link--branded\" href=\"https://dev.to/t/rails\">Ruby on Rails</a>. DEV Community <span title=\"copyright\">\u00a9</span> 2016 - 2026.</p>\n </div>\n </div>\n</footer>\n<div id=\"snack-zone\"></div>\n\n <div id=\"global-signup-modal\" class=\"authentication-modal hidden\">\n <div class=\"authentication-modal__container\">\n <figure class=\"authentication-modal__image-container\">\n <img class=\"authentication-modal__image\" src=\"https://media2.dev.to/dynamic/image/width=190,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" alt=\"DEV Community\" loading=\"lazy\">\n </figure>\n <div class=\"authentication-modal__content\">\n <p class=\"authentication-modal__description\">\n We're a place where coders share, stay up-to-date and grow their careers.\n </p>\n </div>\n <div class=\"authentication-modal__actions\">\n <a href=\"https://dev.to/enter?signup_subforem=1\" class=\"crayons-btn\" aria-label=\"Log in\" data-no-instant=\"\">\n Log in\n </a>\n <a href=\"https://dev.to/enter?signup_subforem=1&state=new-user\" class=\"crayons-btn crayons-btn--ghost-brand js-global-signup-modal__create-account\" aria-label=\"Create new account\" data-no-instant=\"\">\n Create account\n </a>\n </div>\n </div>\n</div>\n\n<script src=\"https://assets.dev.to/assets/signupModalShortcuts-0b25469b985100a01e94cbd7fccaf7f0a4d776e129aac65c766aa32cb28ab29a.js\" defer=\"defer\"></script>\n\n <div id=\"cookie-consent\"></div>\n <div id=\"reaction-category-resources\" class=\"hidden\" aria-hidden=\"true\">\n <img data-name=\"Like\" data-slug=\"like\" data-position=\"1\" src=\"https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Unicorn\" data-slug=\"unicorn\" data-position=\"2\" src=\"https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Exploding Head\" data-slug=\"exploding_head\" data-position=\"3\" src=\"https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Raised Hands\" data-slug=\"raised_hands\" data-position=\"4\" src=\"https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg\" width=\"18\" height=\"18\">\n <img data-name=\"Fire\" data-slug=\"fire\" data-position=\"5\" src=\"https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg\" width=\"18\" height=\"18\">\n</div>\n\n <script>\n var userSignedIn = false;\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n initAuth();\n } else {\n document.addEventListener('DOMContentLoaded', initAuth);\n }\n\n function initAuth() {\n var paramToken = new URLSearchParams(window.location.search).get('jwt');\n\n if (paramToken && !userSignedIn) {\n authenticateUser(paramToken);\n } else {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = 'https://forem.com/auth_pass/iframe';\n \n document.body.appendChild(iframe);\n \n window.addEventListener('message', function(event) {\n if (event.origin !== 'https://forem.com' && event.origin !== window.location.origin) {\n return;\n }\n \n var data = event.data;\n \n if (data.authenticated && !userSignedIn) {\n authenticateUser(data.token);\n } else if(data.authenticated && window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n action: 'login',\n token: data.token,\n }));\n }\n }); \n }\n\n function authenticateUser(token) {\n fetch('/auth_pass/token_login', {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': getMetaContent('csrf-token'),\n },\n body: JSON.stringify({ token: token }),\n })\n .then(function(response) {\n return response.json();\n })\n .then(function(data) {\n if (data.success) {\n if (document.head.querySelector('meta[name=\"user-signed-in\"][content=\"false\"]')) {\n // Reload the page to update the user's state\n location.reload();\n }\n }\n })\n .catch(function(error) {\n console.error('Error during authentication:', error);\n });\n }\n\n function getMetaContent(name) {\n var element = document.querySelector('meta[name=\"' + name + '\"]');\n return element ? element.getAttribute('content') : '';\n }\n }\n</script>\n\n \n \n \n \n \n</body></html>",
"cookies": null,
"errors": null,
"final_url": "https://dev.to/nicolaerario/comment/fe1e",
"headers": {
"accept-ranges": "bytes",
"access-control-allow-origin": "*",
"age": "88571",
"cache-control": "public, no-cache",
"content-encoding": "gzip",
"content-length": "20395",
"content-security-policy": "frame-ancestors https://dev.to https://forem.com https://future.forem.com https://core.forem.com https://version-feb-19-mjhc7.b-cdn.net https://codenewbie.forem.com https://coss.forem.com https://dumb.dev.to https://music.forem.com https://gg.forem.com https://vibe.forem.com https://popcorn.forem.com https://golf.forem.com https://design.forem.com https://maker.forem.com https://crypto.forem.com https://bookclub.forem.com https://zeroday.forem.com https://open.forem.com https://village.forem.com https://bizarro.forem.com https://wasp.forem.com https://hmpljs.forem.com https://experimental.forem.com https://parenting.forem.com https://journal.forem.com https://grow.forem.com https://devbrasil.forem.com https://stormkit.forem.com https://scale.forem.com https://dev.to; script-src 'self' 'unsafe-eval'",
"content-type": "text/html; charset=utf-8",
"date": "Sat, 21 Mar 2026 10:45:43 GMT",
"etag": "W/\"2b3cec0b65c2b6a89afe3cdbac328dc5\"",
"link": "<https://assets.dev.to/assets/minimal-38ef7c1d77ce4703c9933f4a7341c47fda3dfe7a3684438074091ad6e2217919.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/views-c39024a1059d955b68e543c34bfc656efb2a240d268fc9f171f1a18957582a81.css>; rel=preload; as=style; nopush,<https://assets.dev.to/assets/crayons-9da8521a7ce3cbf2b48ea811297907525a284963650c9d26fdc4bfe106e7eba9.css>; rel=preload; as=style; nopush",
"nel": "{\"report_to\":\"heroku-nel\",\"response_headers\":[\"Via\"],\"max_age\":3600,\"success_fraction\":0.01,\"failure_fraction\":0.1}",
"referrer-policy": "strict-origin-when-cross-origin",
"report-to": "{\"group\":\"heroku-nel\",\"endpoints\":[{\"url\":\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D\\u0026sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6\\u0026ts=1774001372\"}],\"max_age\":3600}",
"reporting-endpoints": "heroku-nel=\"https://nel.heroku.com/reports?s=cQnzu%2FFO9i5uCehRSkeqbg2gtSk1z45WLuNCM2zpNK8%3D&sid=929419e7-33ea-4e2f-85f0-7d8b7cd5cbd6&ts=1774001372\"",
"server": "Heroku",
"strict-transport-security": "max-age=31557600",
"vary": "Accept-Encoding, X-Loggedin",
"via": "1.1 heroku-router, 1.1 varnish, 1.1 varnish",
"x-accel-expires": "172800",
"x-cache": "HIT, HIT",
"x-cache-hits": "26, 1",
"x-content-type-options": "nosniff",
"x-download-options": "noopen",
"x-permitted-cross-domain-policies": "none",
"x-request-id": "3256226e-d10f-9658-a72a-14803a1ca40b",
"x-runtime": "0.231911",
"x-served-by": "cache-den-kden1300084-DEN, cache-chi-klot8100136-CHI",
"x-timer": "S1774089943.495437,VS0,VE2",
"x-xss-protection": "0"
},
"id": null,
"scraper_data": null,
"scraperouter": null,
"screenshot_url": null,
"status_code": 200
}
Page Title
How do you manage Boolean with python-dotenv? I mean that ( for example)DEBUG... - DEV Community
Skip to content
Navigation menu [ ](/)
Search [ Powered by Algolia Search
](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)
[ Log in ](https://dev.to/enter?signup_subforem=1) [ Create account
](https://dev.to/enter?signup_subforem=1&state=new-user)
## DEV Community
Close
# Discussion on: Django Cheat Sheet: Keep Credentials Secure with Environment
Variables
[View post](/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-
environment-variables-2ah5)
Collapse Expand
[ ](https://dev.to/nicolaerario)
[ Nicola Erario ](https://dev.to/nicolaerario)
Nicola Erario
[ Nicola Erario ](/nicolaerario)
Follow
* Location
Italy 🇮🇹
* Joined
Oct 18, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe1e)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe1e)
* * Hide
* * *
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
Like comment: Like comment: 7 likes Like Comment button Reply
Collapse Expand
[ ](https://dev.to/jamestimmins)
[ James Timmins ](https://dev.to/jamestimmins)
James Timmins
[ James Timmins ](/jamestimmins)
Follow
* Joined
Sep 19, 2018
• [ Sep 17 '19 ](https://dev.to/jamestimmins/django-cheat-sheet-keep-
credentials-secure-with-environment-variables-2ah5#comment-fe27)
Dropdown menu
* [Copy link](https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5#comment-fe27)
* * Hide
* * *
Yeah, that's an unfortunate drawback of dotenv. There's a couple of things you
can do.
1. Explicitly check for a string value. DEBUG = (os.getenv("DEBUG") == 'true')
2. Cast the val to a boolean DEBUG = bool(os.getenv("DEBUG")), and use an empty string to denote a false value `DEBUG=''`.
3. Use a more fully-featured package like [django-environ](https://github.com/joke2k/django-environ). There's slightly more configuration required, but if your project has multiple boolean settings it might be worth it. (I haven't actually used django-environ, but it looks pretty interesting so I may investigate).
Like comment: Like comment: 7 likes Like Comment button Reply
Collapse Expand
[ ](https://dev.to/bhupesh)
[ Bhupesh Varshney 👾 ](https://dev.to/