Django: From zero to deploying on your own server with or without Docker

Bibhas (~iambibhas)


0

Votes

Description:

If you're new to web development and/or Django, and want to learn the basics of how to design a database for your application, configure a server, and deploy a Django application on it, this is the session for you.

We will start with the basics of Django and the best practices of building an application with it. Then design a database for the application and along the way learn the basics of designing a relational DBMS schema.

And once we have the application up and running locally, we will get into deploying the application on a server, which will include creating/acquiring a bare basic ubuntu server, configuring it to run a Django application, and then make the application publicly available.

If time permits, we will also learn the basics of Docker and how to deploy the application using Docker on your server.


Outline of the workshop:

  • Introduction to Django and Setup: You will learn about the features and benefits of the Django framework. You will install and set up a Django project, getting familiar with the project structure and basic command-line tools provided by Django.

  • Django Models and Database Configuration: You will create models in Django, defining the data structure of your application. You will configure the database settings in Django and perform database migrations to manage changes in the model schema.

  • Django Views and URL Configuration: You will create views in Django to handle HTTP requests and define the logic for rendering templates or returning JSON responses. You will learn how to map URLs to views using URL patterns.

  • Django Templates and Forms: You will work with templates in Django, responsible for rendering HTML pages with dynamic content. You will explore template tags, filters, and how to implement forms to handle user input.

  • User Authentication and Authorization: You will implement user authentication and authorization in Django, including user registration, login, and logout functionalities

  • Server Selection and Setup: You will select an appropriate server for deployment, considering factors such as scalability, performance, and budget. You will set up a server from scratch, and configure basic server settings.

  • Web Server Configuration: You will install and configure popular web servers like Nginx to host your Django applications. If you have a domain available, you will set up virtual hosts and domain names to ensure proper routing and accessibility.

  • Database Configuration and Deployment: You will install and configure a database management system (e.g., PostgreSQL) for storing your application's data. You will create databases, manage database users, and ensure proper security measures. Finally, you will deploy your Django application to the server, making it accessible to users.

Prerequisites:

  1. A computer with Python installed
  2. Postgresql installed, with psql command available on the terminal
  3. A Digitalocean/AWS free tier account and the ability to acquire a droplet/EC2 instance using their free/paid plans
  4. Docker installed, with docker command available on the terminal

Speaker Info:

I am Bibhas, currently a senior software engineer at NUITEQ, currently building products for facilitating learning for children in school, intra-organization communication, and more. Although my current job doesn't require me to write Python, I've been writing Python since 2010 to get things done quickly and efficiently. I've used the language to deliver better education to children in Karnataka while in Akshara Foundation (Django, ETL, Postgres), and connect and upskill people by giving them platform to showcase themselves while in Hasgeek (Flask, Postgres).

I'm a strong believer of the statement that Python is the second best programming language to do anything. There is always another language best suited for the task in your hand. But Python will get it done as well.

When not working, I like to take photographs of people and birds, play around with maps, and connect people with each other.

Section: Web & App development
Type: Workshops
Target Audience: Beginner
Last Updated: