simplified environment variables management
This commit is contained in:
parent
2f2332766e
commit
a1b325b653
8 changed files with 61 additions and 8 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,5 +1,12 @@
|
|||
# IDE
|
||||
.idea
|
||||
|
||||
# Virtual Environment
|
||||
venv
|
||||
.venv
|
||||
|
||||
# Django
|
||||
media
|
||||
static-collected
|
||||
db.sqlite3
|
||||
.env
|
||||
|
|
|
@ -7,10 +7,11 @@ For more information on this file, see
|
|||
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
import dotenv
|
||||
from django.core.asgi import get_asgi_application
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Palto.settings')
|
||||
from utils import env
|
||||
|
||||
|
||||
dotenv.load_dotenv(env.create_dotenv())
|
||||
application = get_asgi_application()
|
||||
|
|
|
@ -7,10 +7,12 @@ For more information on this file, see
|
|||
https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
import dotenv
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Palto.settings')
|
||||
from utils import env
|
||||
|
||||
|
||||
dotenv.load_dotenv(env.create_dotenv())
|
||||
application = get_wsgi_application()
|
||||
|
|
16
README.md
16
README.md
|
@ -1 +1,15 @@
|
|||
# M1-Projet-Serveur
|
||||
# Palto-Server
|
||||
|
||||
(This is a project realised for our University, it will not be maintained after and it should not be used outside of testing)
|
||||
|
||||
Palto is a project to check students attendances at their school classes.
|
||||
It allows teachers to create sessions containing students that should be present.
|
||||
They can then scan their student card with the NFC technology and they will be automatically marked as present to
|
||||
this session.
|
||||
|
||||
# Installation
|
||||
|
||||
1. Install `python >= 3.11`
|
||||
2. Create a virtual environment with `python -m venv ./.venv/`. The next steps will be inside it.
|
||||
3. Install the dependencies with `python -m pip install -r ./requirements.txt`.
|
||||
4. Run the program by with `python ./manage.py runserver`.
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
#!/usr/bin/env python
|
||||
"""Django's command-line utility for administrative tasks."""
|
||||
import os
|
||||
|
||||
import sys
|
||||
|
||||
import dotenv
|
||||
|
||||
from utils import env
|
||||
|
||||
|
||||
def main():
|
||||
"""Run administrative tasks."""
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Palto.settings')
|
||||
dotenv.load_dotenv(env.create_dotenv())
|
||||
|
||||
try:
|
||||
from django.core.management import execute_from_command_line
|
||||
except ImportError as exc:
|
||||
|
|
|
@ -13,3 +13,4 @@ factory_boy
|
|||
|
||||
# Other librairies
|
||||
markdown
|
||||
python-dotenv
|
||||
|
|
0
utils/__init__.py
Normal file
0
utils/__init__.py
Normal file
23
utils/env.py
Normal file
23
utils/env.py
Normal file
|
@ -0,0 +1,23 @@
|
|||
from pathlib import Path
|
||||
|
||||
from django.core.management.utils import get_random_secret_key
|
||||
|
||||
|
||||
path_dotenv = Path("./.env")
|
||||
|
||||
|
||||
def create_dotenv(force: bool = False) -> Path:
|
||||
# if not forced and the file already exist, ignore
|
||||
if not force and path_dotenv.exists():
|
||||
return path_dotenv
|
||||
|
||||
# otherwise create the file
|
||||
path_dotenv.write_text(
|
||||
(
|
||||
f"DJANGO_SETTINGS_MODULE='Palto.settings'\n"
|
||||
f"DJANGO_SECRET={get_random_secret_key()!r}\n"
|
||||
),
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
return path_dotenv
|
Loading…
Reference in a new issue