Le script Python ne s'exécute pas dans l'environnement Django

Terminal dit que je n'ai pas défini DJANGO_SETTINGS_MODULE mais j'ai essayé comme je pensais toutes les méthodes pour le faire et jusqu'à présent rien d'aide (codage sur Windows) Quelqu'un peut-il m'aider s'il vous plaît? Je suis bloqué et je ne sais pas quoi faire Maby cela aidera - je lance mon env virtuel via Anaconda -

conda activate djangoenv
raise ImproperlyConfigured(django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

from faker import Faker
from app.models import AccessRecrod, Webpage, Topic
import random
import django
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
django.setup()
fakegen = Faker()
topics = ['Search', 'Social', 'Marketplace', 'News', 'Games']
def add_topic():
t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]
t.save()
return t
def populate(N=5):
for entry in range(N):
# get topic for entry
top = add_topic()
# create fake data for entry
fake_url = fakegen.url()
fake_date = fakegen.date()
fake_name = fakegen.company()
# create new webpage entry
webpg = Webpage.objects.get_or_create(
topic=top, url=fake_url, name=fake_name)[0]
# create fake access record
acc_rec = AccessRecrod.objects.get_or_create(
name=webpg, date=fake_date)[0]
if __name__ == '__main__':
print('populating script!')
populate(20)
print('populating complete!')


Solution du problème

Au lieu d'essayer de mettre un script python régulier dans l'environnement Django comme celui-ci, je vous suggère de créer une commande que vous pouvez exécuter avec ./manage.py. Vous pouvez apprendre à créer vos propres commandes personnalisées ici. Lorsque vous le faites correctement, vous pouvez exécuter une commande comme ./manage.py create_topicsou quel que soit le nom que vous donnez à votre commande. Cela permet manage.pyde charger l'environnement Django pour vous.

Alternatively, you could look at creating fixtures with ./manage.py dumpdata and ./manage.py loaddata. These commands will allow you to create data and save them to a.json file which you can load into your database at any time.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"