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
Post a Comment