Author Profile Altaf Shaikh
Altaf Shaikh

BE Engg | Python Dev | Content Writer | Founder of TeachMeBro | Blockchain Dev | Django

Django- Creating an App

February 13th 2020   445

Creating an App in Django
Creating an App in Django

Now that our environment – a “project” – is set up, we’re set to start doing work. In this tutorial, we will learn what is App in Django and we will create an account App to handle the user signup feature. So let's get started.

What is App?

An App is a Web application that does something.  So for every functionality, an app can be created like a completely independent module. Let's understand App in Django with this realistic example:

Say you are building an online shopping site (e-commerce site) in Django so our Project will consist of Apps like:

  • Cart:- Which would have logic for users selected items for purchase.

  • Products:- Which would have logic for products that the site is selling.

  • Profile:- Which would have logic for user information.

Each application you write in Django consists of a Python package that follows a certain convention. Django comes with a utility that automatically generates the basic directory structure of an app, so you can focus on writing code rather than creating directories.

Benefits of using Django apps –

  • Django apps are reusable i.e. a Django app can be used with multiple projects.

  • Components are almost independent

  • Multiple developers can work on different components

  • Debugging and code organization is easy.

How to create a Django App

To create your app, make sure you’re in the same directory as manage.py and type this command:

python manage.py startapp account

That’ll create a directory account, which is laid out like this:

account/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
  • __init__.py − Just to make sure python handles this folder as a package.

  • admin.py − This file helps you make the app modifiable in the admin interface.

  • models.py − This is where all the application models are stored.

  • tests.py − This is where your unit tests are.

  • views.py − This is where your application views are (actual logic).

To consider the account app in your project you need to specify your app name in the INSTALLED_APPS list as follows in social/settings.py file.

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',
 
    'django.contrib.staticfiles',

    #add the app name here

    'account',

]

By default, INSTALLED_APPS contains the following apps, all of which come with Django:

These applications are included by default as a convenience for the common case.

Some of these applications make use of at least one database table or if our app makes use of database table (models), though, so we need to create the tables in the database before we can use them. To do that, we use the following command:

python manage.py migrate

The migrate command looks at the INSTALLED_APPS setting and creates any necessary database tables according to the database settings in your social/settings.py file.

So in this tutorial, we learn how to create an App in Django and how to configure the App inside the settings. In the next tutorial, we will learn about Models and we will write our first Model in Django.