Lancer le serveur de développement
Exclusif Premium
Débloquez votre potentiel ! ✨
Cette session fait partie de notre programme Premium exclusif
+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors
Prêt à passer au niveau supérieur ?
Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteToutes les questions

Célestin
29 janvier 2025
Résolue
4 réponses
Problème de freeze avec 'python manage.py runserver'
Bonjour,
Excusez moi de déranger mais, lorsque je fais la commande `python manage.py runserver` (en étant dans le bon dossier et en ayant activé l'environnement virtuel évidemment), cela me met le message "Watching for file changes with StatReloader" et mon script freeze là dessus. Je suis sur Windows avec GitBash et Python 3.10.2. J'ai déjà essayé les commandes `python manage.py runserver 127.0.0.1:8000` et `python manage.py runserver 0.0.0.0:8000` comme suggéré sur une autre question exactement pareil mais cela n'arrange rien au problème. J'ai suivi jusqu'ici exactement tout ce qui était dans le début de la formation Django, sans soucis.
Merci d'avance pour vos réponses.

Geoffroy Streit
9 juillet 2024
Résolue
2 réponses
Freeze on 'Watching for file changes with StatReloader'
Bonjour,
Désolé de vous questionner à nouveau, mais j'ai un 'blocage' du programme à l'instruction 'python manage.py runserver' qui se contente de m'afficher 'Watching for file changes with StatReloader', mais ne fait plus rien. Pas d'adresse
Démarrage effectif du server de développement non précisé.
Je tourne sous Windows avec GIT BASH avec dernière version de django et pyton 3.12.2.
J'ai suivi l'ensemble du cours à la lettre sinon.
Si toutefois après le lancement de l'instruction en question, je fais un ^C, en allant dans mon navigateur à l'adresse locale 127.0.01:8000,
le serveur semble avoir démarré malgrétout, mais...
```
(.env)
Hylst@HYLST-LAPTOP MINGW64 /c/python/docstring/DocBlog
$ ls -a
./ ../ .env/ requirement.txt src/
(.env)
Hylst@HYLST-LAPTOP MINGW64 /c/python/docstring/DocBlog
$ cd src
(.env)
Hylst@HYLST-LAPTOP MINGW64 /c/python/docstring/DocBlog/src
$ ls
DocBlog/ manage.py*
(.env)
Hylst@HYLST-LAPTOP MINGW64 /c/python/docstring/DocBlog/src
$ python manage.py runserver
Watching for file changes with StatReloader
```

Moïse Kouman
3 septembre 2023
Résolue
6 réponses
Erreur sur mon serveur de développement local avec Django
Bonjour!
Je rencontre une erreur en voulant démarrer un serveur de developpement en django.
Je viens de commencer le cours sur django et aussi je ne maîtrise pas encore les environnements virtuels.
**
**Voici un peu l'écosystème de mon système:**
* ubuntu 22.04.3 LTS
* python --version → Python 3.10.12
**Comme indiqué dans le cours voici comment j'ai procédé :**
Création du projet
Voici un peu les étapes que j'ai suivi :
Création de l'environnement virtuel avec Python 3.9.1
Installation deu django
Création du fichier requirements.txt
Création du dossier du projet
J'ai lancé le serveur de développement :**** python manage.py runserver****
ensuite j'ai cette erreur qui s'affiche :
```
(.env):~/docstring/django/docBlog/src$ python manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/utils/autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
autoreload.raise_last_exception()
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
raise _exception[1]
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/core/management/__init__.py", line 357, in execute
autoreload.check_errors(django.setup)()
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/utils/autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 790, in exec_module
File "", line 228, in _call_with_frames_removed
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/contrib/auth/models.py", line 2, in
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/contrib/auth/base_user.py", line 48, in
class AbstractBaseUser(models.Model):
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/models/base.py", line 122, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/models/base.py", line 326, in add_to_class
value.contribute_to_class(cls, name)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/models/options.py", line 206, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/__init__.py", line 28, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/utils.py", line 214, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/utils.py", line 111, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/go_kouman/docstring/django/docBlog/.env/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 14, in
from sqlite3 import dbapi2 as Database
File "/usr/local/lib/python3.9/sqlite3/__init__.py", line 23, in
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.9/sqlite3/dbapi2.py", line 27, in
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
```
Pour y remédier j'ai :
* desinstaller et réinstaller django,
* `sudo apt-get install sqlite3 libsqlite3-dev`
Toujours la même erreur, si vous avez des pistes je suis preneurs :-)
Merci
00:00:00 :Après avoir créé la structure de base d'un projet avec Django,vous allez pouvoir lancer un serveur localqui vous permettra d'afficher les pages de votre projet.
00:00:12 :Ce serveur, il est bien important de noterque c'est un serveur de développementque vous ne devez pas utiliser en production.Il n'est pas prévu pour ça,il n'a pas été pensé de façon assez sécuritairepour pouvoir être utilisé en production,donc c'est vraiment uniquement pour le développement local.
00:00:29 :Ce serveur, on va pouvoir le lancergrâce à la commande run server.Cette commande, vous y avez accès dans Django Admin,mais on ne va plus utiliser Django Admin pour lancer les commandes.
00:00:39 :A la place, on va utiliser le fichier manage.py.L'avantage de passer par ce fichier,c'est qu'il va automatiquement avoirles bonnes variables d'environnementqui pointent vers notre fichier de settings,donc le fichier pour notre projet DocBlog.
00:00:53 :On n'aura pas besoin de spécifier à chaque fois,comme on aurait besoin de le faire avec Django Admin,le fichier de settings qu'on veut utiliser.
00:01:00 :Donc Django Admin, c'est pratique si vous avez plusieurs projetset que vous n'avez pas envie à chaque foisd'aller dans les dossiers de chaque projetpour utiliser le fichier manage.py du projet correspondant.
00:01:11 :Dans ce cas-ci, Django Admin peut être intéressante.Nous, dans ce cas-ci, on est dans notre projet DocBlog,donc on va utiliser manage.py.Pour ça, je vais me déplacer à l'intérieur de mon dossier source,donc je fais cd src.
00:01:24 :Si je fais 1ls, je vois que j'ai bien mon fichier manage.py ici,que je vais pouvoir utiliser pour lancer mes commandes.Assurez-vous bien auparavant, bien entendu,d'avoir activé votre environnement virtuel.
00:01:34 :Donc moi, c'est le cas ici, je le vois .env.Donc je vais pouvoir utiliser la commande Python,indiquer ensuite le fichier manage.py et la commande à lancer.
00:01:44 :Dans ce cas-ci, ça va être run serveur.Cette commande, elle va lancer le serveur en local.Alors là, vous allez avoir plusieurs messages en rouge qui apparaissent.
00:01:53 :Ce n'est pas bien grave, ne vous inquiétez pas.En fait, ce sont des migrations qui n'ont pas été appliquées.Donc par défaut, quand vous créez un projet,il va falloir appliquer ces migrationsqui concernent la base de données d'administration, notamment.
00:02:05 :On peut le laisser comme ça pour l'instant,ça ne va pas poser de problèmeet on pourra quand même accéder à notre site.Si jamais vous voulez enlever ce message d'erreuret appliquer les migrations,vous pouvez lancer cette commande qui est indiquée ici,donc python manage.py migrate,
00:02:19 :qui va appliquer ces migrations.Vous n'avez besoin de le faire que la première foiset ensuite, ça va être appliqué.Votre base de données va être créée avec les entréespour tout ce qui concerne l'interface d'administrationet vous n'aurez plus ce message d'erreur.
00:02:32 :Nous, on va voir ici ce qui nous intéresse un peu plus.Donc on a quelques informations,par exemple la version de Django qui est utilisée.
00:02:38 :Il nous indique également quel fichier de settings qui a été utilisé.Donc comme je vous le disais il y a quelques instants,automatiquement en utilisant le fichier manage.py
00:02:47 :à l'intérieur de notre projet,il sait qu'il va devoir utiliser ce fichier précisément.Donc le fichier docblog.settingset il nous indique que le serveur de développement a été démarréet qu'on peut y accéder à cette adresse.
00:02:58 :Donc cette adresse, ça va toujours être la même,c'est en fait ce qu'on appelle le localhost,donc 127.0.0.1et on est sur le port 8000.
00:03:06 :Donc vous allez copier cette adresse,je fais un clic droit copieet on va aller dans un navigateur internetpour coller cette adresse et nous rendre sur notre site.
00:03:14 :Donc dans Chrome, ici,vous collez cette adresse dans la barre d'adresse,vous appuyez sur entréeet vous avez votre site web qui s'affiche.Donc ça c'est la page par défautqui est affichée par Djangoet il nous l'indique ici qu'on voit cette pageparce qu'on a mis debugqui est égal à true.
00:03:32 :Donc ça c'est dans le fameux fichier settings.pyla variable d'environnement debug par défautelle est à trueet donc quand on va sur notre site web,on a cette petite page qui s'afficheavec la fusée, avec quelques liensici en bas assez intéressantscomme la documentation de Django,le tutoriel pour l'application de base
00:03:50 :dans la documentation de Djangoou les communautés que vous pouvez retrouver.Si je reviens dans mon terminal,on va voir qu'on a plusieurs requêtesqui ont été faites.
00:03:58 :Donc là en fait, à chaque fois qu'on vaaccéder à une page sur notre site,on va voir le détail des requêtes qui sont faites.
00:04:05 :Donc là on a par exemple une requête get,on a ensuite d'autres requêtes qui sont faitespour aller chercher par exemple les fonts.Donc ça c'est des fonts, c'est des polices d'écriturequi ont été récupérées par notre serveur.
00:04:15 :On a également des indicationsquand certaines ressources ne sont pas trouvées.Par exemple ici, il nous indique que le fichierfavicon.ico n'a pas été trouvé,
00:04:23 :donc not found, et on a icicette erreur 404, donc la fameuse404 qui indique qu'une ressourcen'est pas trouvée. Donc ça c'est quandon a fait le get de favicon.ico,
00:04:33 :ce n'est pas nous qui l'avons fait directement,c'est quand on s'est rendu sur la pageà l'adresse suivante, donc 127.0.0.12.8000. Il a essayéd'aller récupérer la favicon pourl'afficher dans notre navigateur et actuellementon n'en a pas, donc on a cette erreur 404.
00:04:47 :Ce serveur, vous pouvez donc lelaisser rouler, et à chaque fois que vous allezsur votre site accéder à des pages, vous allez avoirces requêtes qui vont être effectuéeset que vous allez pouvoir examiner dans votre terminalici. Si jamais vous voulez
00:04:59 :arrêter ce serveur, et bien il vous suffitde faire CTRL-C pourarrêter le serveur et vous revenezau niveau de votre terminal, et si jeretourne sur mon site et que j'actualise la page,vous allez voir que cette fois-ci, le siten'est pas accessible. Donc à chaque fois que
00:05:13 :vous allez vouloir travailler sur votre projet,il va falloir lancer cette commande,donc python manage.py runserver, vous appuyez sur entrée,le serveur se lance, et à chaque foisque vous allez faire des modifications dans vos fichiers,le serveur va automatiquementrecharger ces informations.
00:05:29 :Donc vous n'avez pas besoin, à chaque fois que voussauvegardez vos fichiers, de relancer le serveur.Automatiquement, Python va contrôlerles fichiers à l'intérieur de votreprojet Django, il va se rendre compte quandles fichiers sont modifiés,et automatiquement, il va les rechargerpour qu'on puisse avoir les modifications qu'on a
00:05:45 :fait dans nos fichiers, qui soient répercutéessur notre site. Il y a quelques cas de figureoù il va falloir quand même relancerle serveur, par exemple si vous créez unenouvelle application, ou si parfoisvous faites des opérations spécifiques sur votrebase de données, dans certains cas comme ceci,
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.