[Fixed]-Django โ€“ what should you do if you don't need a database engine?

11๐Ÿ‘

โœ…

You are required to use a database engine if you want to use some features of django, like sessions, for example. If you do not need those, just remove them from middleware classes.

If you want to use sessions or store some data using django apps, but do not want to do all the complicated database configurations, you can use sqlite3 as your database engine. It does not require any setup, all you need is to specify a path, where database file will be created and stored. Thats it:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/var/www/mysite/sqlite.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
๐Ÿ‘คSilver Light

5๐Ÿ‘

Can you list a SQLite database there?

Although I would consider, if I were you, if using a heavyweight framework like Django is appropriate for the task you intend it for (because you donโ€™t even need a database).

๐Ÿ‘คSri Raghavan

2๐Ÿ‘

You may need it if using some of the built in db models that Django offers. Here is a microproject that only has the bare minimum to form a response, so no db is prsent:

https://github.com/radzhome/django_microproject

As you can see the settings.py file is pretty stripped down.

๐Ÿ‘คradtek

1๐Ÿ‘

You donโ€™t need to do anything. I donโ€™t get an error when I donโ€™t define a backend.

  1. django-admin.py startproject myproject
  2. open urls.py and map a url to a view.
  3. run the dev server and visit your page.

Bam, django without a database.

1๐Ÿ‘

As @Silver Light You can run Django without a database. Youโ€™ll have to remove anything that depends on the database including admin, auth, and default sessions.

Some of them that you need to remove from INSTALLED_APPS are listed below

 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.sessions',

Remove the following from MIDDLEWARE

'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',

And now under context_processors (find this under TEMPLATES)
remove the below

'django.contrib.auth.context_processors.auth',

Once you remove anything that depends on Database you can just set the

DATABASES={}

Thatโ€™s it your Django app will now run without database.

๐Ÿ‘คArt

Leave a comment