Question: I'm new to Django and want to use its ORM in my scripts without running whole Django thing. I'm scratching my head how to configure it. Searches on StackOverflow didn't help as answers don't show the full picture. 

Therefore, I created a small project:

```
app.py
manage.py
orm/
  __init__.py
  models.py

```

manage.py has configuration: 

```
from django.conf import settings    
settings.configure(
    DATABASE_ENGINE = 'mysql',
    DATABASE_NAME = 'db',
    DATABASE_USER = 'admin',
    DATABASE_PASSWORD = '',
    DATABASE_HOST = 'localhost',    
    INSTALLED_APPS = ('orm')
)

```

models.py:

```
from django.db import models    
class Label(models.Model):
    name = models.CharField(max_length=50) # required max_length

```

and finally my main file app.py:

```
from django.conf import settings    
from django.db import models
from orm.models import *   
\# do database maniupaltions

```

Though after running app.py I receive an error that: 
`django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.`

What am I doing wrong?

Answer: 
So your question is :

> 
> I want to use Django's ORM in my scripts without running a complete Django application, how to configure it?
> 
> 
> 

I'll share what I did for a project I am currently working on, using **Django 2.0.2**.

I suggest you create a file `SetupDjangoORM.py`with :

```
import django
from django.conf import settings

settings.configure(
    DATABASES={
        'default': {
            'ENGINE': '<your_engine>',
            'NAME': '<database_name>',
            'HOST': '<hostname_or_ip>',
            'PORT': '<port>',
            'USER': '<user>',
            'PASSWORD': '<super_secret_password>',   
        }
    },
    INSTALLED_APPS=[
        '<your_app>',
    ]
)
django.setup()

```

You can find this informations in your `settings.py` file.

Then, you can import this wherever you need :

```
from . import SetupDjangoORM

```

And now you are able to use Django Models (ORM) in your scripts.
You can find all the information [here](https://docs.djangoproject.com/en/3.1/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage)

This works for version 3.1 of Django

```
import django
from django.conf import settings
from myapp import myapp_defaults

settings.configure(default_settings=myapp_defaults, DEBUG=True)
django.setup()

# Now this script or any imported module can use any part of Django it needs.
from myapp import models

```