Ce guide est conçu pour les débutants. Nous allons transformer votre site web Django en un vrai logiciel installable (.exe) avec son propre logo.
.exe
"Build cross-platform desktop apps with JavaScript, HTML, and CSS"
Electron JS est un framework open-source développé par GitHub qui permet de créer des applications de bureau natives en utilisant des technologies web. Il combine deux outils puissants : Chromium (le moteur de rendu de Google Chrome) et Node.js (pour l'accès au système de fichiers et au matériel).
Si Django est le moteur (Backend) parfait pour gérer vos données, Electron est la carrosserie (Frontend) idéale pour transformer ce site en logiciel. Voici pourquoi c'est une solution gagnante :
💡 Dans cet article, nous allons utiliser Electron comme un "conteneur" pour votre serveur Django. L'utilisateur lance le logiciel, Electron démarre Django en arrière-plan et affiche l'interface instantanément.
Installez ces trois outils indispensables si vous ne les avez pas :
Créez un dossier vide nommé mon-logiciel. À l'intérieur, placez votre projet Django. Voici à quoi doit ressembler votre structure :
mon-logiciel
Ouvrez votre terminal dans le dossier de votre projet Django et installez WhiteNoise :
Ensuite, ouvrez votre fichier settings.py et faites ces 3 modifications :
settings.py
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', # Ajoutez cette ligne ici # ... le reste ... ]
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
# Ce code place votre base de données dans le dossier utilisateur de Windows if os.name == 'nt': DATA_DIR = os.path.join(os.environ['APPDATA'], 'MonLogiciel') os.makedirs(DATA_DIR, exist_ok=True) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(DATA_DIR, 'db.sqlite3'), } }
Créez un fichier nommé launcher.py à côté de votre manage.py :
launcher.py
manage.py
import os, sys from django.core.management import execute_from_command_line if __name__ == "__main__": os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mon_projet.settings') execute_from_command_line(['manage.py', 'collectstatic', '--noinput']) execute_from_command_line(['manage.py', 'migrate', '--noinput']) execute_from_command_line(['manage.py', 'runserver', '127.0.0.1:8000', '--noreload'])
Tapez cette commande dans le terminal pour créer le binaire :
Revenez à la racine du dossier mon-logiciel. Installez Electron :
Créez le fichier main.js :
main.js
const { app, BrowserWindow } = require('electron'); const { spawn } = require('child_process'); const path = require('path'); let djangoProcess; function createWindow() { const win = new BrowserWindow({ width: 1000, height: 800 }); // On attend 3 secondes que Django démarre, puis on affiche le site setTimeout(() => { win.loadURL('http://127.0.0.1:8000'); }, 3000); } app.whenReady().then(() => { // Lancer le fichier .exe de Django qu'on a créé à l'étape 4 const backend = path.join(__dirname, 'mon_projet_django/dist/django-backend.exe'); djangoProcess = spawn(backend); createWindow(); }); // Fermer Django quand on quitte le logiciel app.on('window-all-closed', () => { if (djangoProcess) djangoProcess.kill(); app.quit(); });
Modifiez votre fichier package.json pour ajouter la commande de fabrication :
package.json
"scripts": { "start": "electron .", "build": "electron-builder" }, "build": { "appId": "com.monapp.logiciel", "win": { "target": "nsis" } }
Tapez enfin :
Votre logiciel est prêt dans le dossier dist/. Vous pouvez l'envoyer à vos amis !
Découvrez nos actualités, conseils et tutoriels pour rester à jour
Dans ce tutoriel, nous allons implémente...
_set est associé à une relation i...
Le langage de programmation Python est en t&eci...
Oublier ou devoir réinitialiser le mot d...
Inscription en cours...
Restez informé de nos dernières actualités et recevez nos meilleurs conseils !
Chargement du formulaire de devis...