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

Comment signer la connexion OKEx API version 5 avec websockets ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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