Python Django 3 : Install

 Install Django which is Python Web Application Framework.

[1]. Install some packages.

[root@dlp ~]# dnf -y install python3-virtualenv

[2]. Install Django under an Virtualenv environment. It's possible to do for any common user.

[cent@dlp ~]$ virtualenv venv

[cent@dlp ~]$ cd ~/venv

[cent@dlp venv]$ source bin/activate

(venv) [cent@dlp venv]$ pip install django==3.0

.....

.....

Installing collected packages: pytz, sqlparse, asgiref, django

Successfully installed asgiref-3.2.3 django-3.0 pytz-2019.3 sqlparse-0.3.0


(venv) [cent@dlp venv]$ django-admin --version

3.0

# exit from virtualenv

(venv) [cent@dlp venv]$ deactivate

[cent@dlp venv]$

[3]. Create a test project.

If Firewalld is running and also access to Django from other Hosts, Allow ports you plan to use with root privilege before it. (example below uses [8000/tcp])

[cent@dlp ~]$ cd ~/venv

[cent@dlp venv]$ source bin/activate

# create testproject

(venv) [cent@dlp venv]$ django-admin startproject testproject

(venv) [cent@dlp venv]$ cd testproject

# configure database (default is SQLite)

(venv) [cent@dlp testproject]$ python manage.py migrate

# create admin user

(venv) [cent@dlp testproject]$ python manage.py createsuperuser

Username (leave blank to use 'cent'): cent

Email address: cent@dlp.srv.world

Password:

Password (again):

Superuser created successfully.

(venv) [cent@dlp testproject]$ vi testproject/settings.py

# line 28: set if you allow to access to Django from other Hosts

# specify Hosts with comma separated

# if allow all, specify like follows

ALLOWED_HOSTS = ['*']

# start server

(venv) [cent@dlp testproject]$ python manage.py runserver 0.0.0.0:8000

Watching for file changes with StatReloader

Performing system checks...


System check identified no issues (0 silenced).

December 13, 2019 - 03:49:56

Django version 3.0, using settings 'testproject.settings'

Starting development server at http://0.0.0.0:8000/

Quit the server with CONTROL-C.


[4]. Access to the [http://(server's hostname or IP address):8000/] from a client computer. It's OK if following site is displayed normally.


[5]. It's possible to use admin site on

 [http://(server's hostname or IP address):8000/admin].


[6] Create a test application to try to use Django.

[cent@dlp ~]$ cd ~/venv

[cent@dlp venv]$ source bin/activate

(venv)[cent@dlp venv]$ cd testproject

(venv)[cent@dlp testproject]$ python manage.py startapp test_app

(venv)[cent@dlp testproject]$ vi test_app/views.py

# add to the end

from django.http import HttpResponse

def main(request):

    html = '<html>\n' \

           '<body>\n' \

           '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \

           'Django Test Page\n' \

           '</div>\n' \

           '</body>\n' \

           '</html>\n'

    return HttpResponse(html)


(venv)[cent@dlp testproject]$ vi testproject/urls.py

# line 16: add like follows

from django.contrib import admin

from django.urls import path, include

urlpatterns = [

    path('admin/', admin.site.urls),

    path('test_app/', include('test_app.urls')),

]

(venv)[cent@dlp testproject]$ vi test_app/urls.py

# create new

from django.urls import path

from .views import main


urlpatterns = [

    path('', main, name='home')

]

(venv)[cent@dlp testproject]$ vi testproject/settings.py

# line 33: add test application in [INSTALLED_APPS] section

INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'test_app',

)

(venv)[cent@dlp testproject]$ python manage.py runserver 0.0.0.0:8000

[7]. Access to the [http://(server's hostname or IP address):8000/testapp/] from a client computer. It's OK if testapp is displayed normally.


Comments

Popular posts from this blog

Java : Variables Declaring

SQL Self JOIN