tarantino peliculas pelicula descargar cantante django

peliculas - ¿Alternativa a la obsoleta setup_environ() para scripts django únicos?



django wikipedia (6)

Descargo de responsabilidad: estoy usando Django 1.8

Solo agregando mis 2 centavos: probé algunas de las soluciones presentadas en esta página, pero no funcionaron en absoluto. Acabo de encontrar una solución que comparto a continuación.

Asegúrate de estar en la carpeta raíz de tu proyecto. Lo mismo donde se encuentra manage.py .

#make sure basic imports are in place >>> import os,django #set the specific django settings file >>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "main.settings.base") # import your modules and use them just like you do in your # web apps >>> from apps.customers import models as c # normal usage... for instance: >>> dir(c) [''You'', ''Will'', ''See'', ''Your'', ''Models'', ... ]

setup_environ() un tiempo para escribir un script de Python único para ejecutarlo desde la línea de comandos que realmente no encajaba muy bien como un comando manage.py personalizado (mi opción preferida). Configuró todo muy bien. Supongo que desaprobamos esta función porque los pitonistas que no usan django se burlan de los djangonauts por cosas mágicas como esta y nos cansamos de sentirnos sucios. Entonces si está en desuso, ¿cuál es la alternativa? Quizás esta es una pregunta perezosa, pero ¿qué necesito para ejecutar en lugar de setup_environ para lograr el mismo efecto? Supongo que podría copiar / pegar la función en mi script, pero supongo que no fue el punto de desaprobarla. (obviamente todavía puedo usar una función en desuso, pero quiero que mi script sobreviva a algunas versiones de django)


Esto ha cambiado en Django 1.7.

import os import django from myapp import models os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") django.setup() print models.MyModel.objects.get(pk=1)


Estoy usando Django 2.0 y Ben Davis está cerca, pero no pude hacerlo funcionar. Lo que parece que me ha funcionado es

import os import sys import django sys.path.append("/path/to/django/project") #only required if project not already in path os.environ.setdefault(''DJANGO_SETTINGS_MODULE'',''myapp.settings'') django.setup() #run django.setup BEFORE importing modules to setup the environ from myapp.models import Thingy t=Thingly.objects.all() print(t)


Las notas de lanzamiento de Django 1.4 recomiendan oficialmente usar django.conf.settings.configure() para establecer la configuración. Esto es bueno para pequeños scripts para los que necesita hacer todo de la manera "pythonic". Sin embargo, si tiene un proyecto más grande, me gusta usar el enfoque de Django que es tener un paquete / módulo de configuración separado y luego su ruta en la variable de entorno DJANGO_SETTINGS_MODULE . Este es el enfoque que se utiliza en manage.py :

# manage.py # ... os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fooproject.settings") # ...

Los documentos de lanzamiento se pueden encontrar here .


Para agregar a lo que dijo Leandro N (¡gracias, Leandro!), Debe agregar django.setup ().

Por ejemplo, mi código:

import os, django os.environ.setdefault(''DJANGO_SETTINGS_MODULE'', ''myproject.settings'') django.setup() from app.models import ModelA, ModelB

Para tu información, estoy en Django 1.10.


Para ampliar la respuesta de miki725, si antes tenías

from django.core.management import setup_environ import fooproject.settings as settings setup_environ(settings)

solo reemplaza con

import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fooproject.settings") from django.conf import settings

y su configuración se cargará como configuración.

Para Django 1.7+, vea la solución de Ben Davis.