Getting Started

Installation

  1. Getting Started

django-admin startproject <project_name>
  1. Running

python manage.py runserver

Django Admin

django-admin is the CLI to manage all things Django

Subcommands

    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

Route

Create new app

django-admin startapp home

user → /homeurl.py's url pattern match with homeviews.pydef home

It is MVT Framework.

Model → View → Template

Template is created <app>/templates/<folder>

return render(request, '<folder>/hello_world.html', {'today': datetime.today()})

Working with DB

Django by default has admin

python manage.py migrate

This will create SQLite db.sqilite3 with the following output

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

Create username and password:

python manage.py createsuperuser

Writing a Model E2E

Classes → makeMigrationsmigrate → Database

  1. Create Model

  2. python manage.py makemigrations

  3. python manage.py migrate

  4. Check Admin

Django QuerySet has good functions that are nice for ORM specific things.

>>> Product.objects.filter(product_name__startswith="ip").exclude(product_desc__icontains="tr")

Class Based View