Django is an open source free software written in python. It allows less code to be used, and facilitates the creation of complex websites. It allows programmers avoid several other important security errors like the SQL Injection. You can quickly create Python web applications using Django, and rely on the framework to do a lot of heavy lifting.
With that being said, there is lot's of methods to install Django on Ubuntu or any linux distribution system. But I shares with you one of the easy method. The most flexible way to install Django on your system is within a virtual environment using virtualenv tool. After installation, you will start a new project to use as the basis for your site. Cheers!!
Nothing much more, Let's begin. Use some of your part of the brain and enter below comments in terminal. Use sudo if required, I don't used here because I running it on root user. Please note: It is better to use non-root user with sudo privileges before begins.
apt update
apt install python3-pip python3-dev
pip3 install virtualenv
Whenever you start a new project, you can create a virtual environment for it. Start by creating and moving into a new project directory (Here: folder named django under projects).
mkdir projects/django
cd projects/django
virtualenv insvenv
source insvenv/bin/activate
pip3 install django psycopg2 pipenv django-debug-toolbar
I used here DBMS as postgresql (popular choice for many small and large projects) and want to install only if not allready installed. It provides an implementation of the SQL querying language and having many advanced features like reliable transactions and concurrency without read locks.
apt install postgresql postgresql-contrib libpq-dev
sudo -i -u postgres
psql
psql -U postgres
ALTER USER postgres WITH PASSWORD 'postgres';
CREATEDB insproject
CREATE USER insprojectuser WITH PASSWORD 'insprojectuser';
ALTER ROLE insprojectuser SET client_encoding TO 'utf8';
ALTER ROLE insprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE insprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE insproject TO insprojectuser;
\q
Open pg_hba.conf and change as below (peer to md5).
subl /etc/postgresql/12/main/pg_hba.conf
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
sudo service postgresql restart
django-admin startproject insproject .
Edit variables in projects/django/insproject/settings.py as below.
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'insproject',
'USER': 'insprojectuser',
'PASSWORD': 'insprojectuser',
'HOST': 'localhost',
'PORT': '',
}
}
Then back to terminal and do comments below to create default tables and django superuser admin account.
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver 0:7777
Visit your IP address followed by :7777 in your web browser like http://127.0.0.1:7777
. You can see login form in http://127.0.0.1:7777/admin/
and use the credentials that you entered when running createsuperuser comment.
Simple hacks to run server after setup
service postgresql restart && service apache2 restart && cd /home/projects/django && source insvenv/bin/activate && ./manage.py runserver 0:7777
Must installed packages
pip3 install django-debug-toolbar
pip3 install Pillow
pip3 install django_compressor
If you would like to share anything with me please comment below.
Comments...
Very Helpful Thankyou