Как установить Django на Ubuntu Trusty

Posted by

Для себя я понял, что название формирует специальный фреймворк ответственный за производительную разработку приложений и сайтов посредством Python языка. А значит данный инструмент еще больше поможет мне в моей нелегкой задумке по приобщению к своему системному администрированию языка python. Да нужно развиваться в смежный областях не сильно отдаляясь от основной работы, а у меня это Системное администрирование. И так это будет своего рода шпаргалка на Web-ресурсе, как установить фреймворк Django на Ubuntu Trusty Server/Desktop.

В рамках моего самообразования все действия будут вестись на Ubuntu Trusty Server/Desktop amd64

Шаг №1: Установка пакета Django из дефолтных репозитариев системы.

ekzorchik@srv-trusty:~$ sudo rm -rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update

ekzorchik@srv-trusty:~$ apt-cache show python-django | grep Version

Version: 1.6.11-0ubuntu1.1

Version: 1.6.1-2

ekzorchik@srv-trusty:~$ sudo apt-get install python-django -y

ekzorchik@srv-trusty:~$ django-admin --version

1.6.11

Установка прошла успешно.

Для удаления используем следующую строку:

ekzorchik@srv-trusty:~$ sudo apt-get remove --purge python-django -y

Шаг №2: Установка Django через менеджер пакетов Python.

ekzorchik@srv-trusty:~$ sudo rm -rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update

ekzorchik@srv-trusty:~$ sudo apt-get install ipython ipython3 python-pip python3-pip -y

  • Если я буду использовать в разработке язык Python версии 2, то устанавливаю django через pip:

ekzorchik@srv-trusty:~$ sudo pip install django

  • Если я буду использовать в разработке язык Python версии 3, то устанавливаю django через pip3:

ekzorchik@srv-trusty:~$ sudo pip3 install django

Текущая версия:

ekzorchik@srv-trusty:~$ /usr/local/bin/django-admin --version

1.11.6

Для удаления Django из системы:

ekzorchik@srv-trusty:~$ sudo pip uninstall django -y

ekzorchik@srv-trusty:~$ sudo pip3 uninstall django -y

Шаг №3: Установка Django через менеджер пакетов Python, но с использованием виртуального окружения. Виртуальное окружение используется когда в каталог проекта устанавливается различные приложения и настройки которые ни каким образом не влияют на саму систему.

ekzorchik@srv-trusty:~$ sudo rm -rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update

ekzorchik@srv-trusty:~$ sudo apt-get install ipython ipython3 python-pip python3-pip -y

ekzorchik@srv-trusty:~$ sudo pip install virtualenv

ekzorchik@srv-trusty:~$ mkdir ptest

ekzorchik@srv-trusty:~$ cd ptest/

Именую виртуальное окружение:

ekzorchik@srv-trusty:~/ptest$ virtualenv ptest

New python executable in /home/ekzorchik/ptest/ptest/bin/python

Installing setuptools, pip, wheel...done.

Затем включаю изолированную среду:

ekzorchik@srv-trusty:~/ptest$ source ptest/bin/activate

(ptest) ekzorchik@srv-trusty:~/ptest$

Устанавливаю фреймворк Django для того языка Python который соответствует будущим проектам, либо Python 2 (pip), либо Python 3 (pip3).

(ptest) ekzorchik@srv-trusty:~/ptest$ pip install django

Installing collected packages: pytz, django

Successfully installed django-1.11.6 pytz-2017.2

(ptest) ekzorchik@srv-trusty:~/ptest$

Отобразить список установленных модулей в виртуальном окружении:

(ptest) ekzorchik@srv-trusty:~/ptest$ pip list

Отобразить текущую версию django установленную в изолированное окружение:

(ptest) ekzorchik@srv-trusty:~/ptest$ django-admin --version

1.11.6

Выходим из изолированной среды:

(ptest) ekzorchik@srv-trusty:~/ptest$ deactivate

На заметку: для основ знакомства с изолированной средой virtualenv можно перейти к заметке

Если в последствии нужно будет возвратиться к виртуальной среде, то входим в каталог и активируем изолированную среду:

ekzorchik@srv-trusty:~$ cd ptest/

ekzorchik@srv-trusty:~/ptest$ source ptest/bin/activate

На заметку: пакет django-admin установлен только в изолированной среде, основную систему от не затрагивает.

Итак фреймворк Django установлен любым выше
способом. А как создать проект?

ekzorchik@srv-trusty:~$ cd ptest/

ekzorchik@srv-trusty:~/ptest$ source ptest/bin/activate

(ptest) ekzorchik@srv-trusty:~/ptest$ django-admin startproject example

(ptest) ekzorchik@srv-trusty:~/ptest$ cd example/

Создаю базу данных:

(ptest) ekzorchik@srv-trusty:~/ptest/example$ python manage.py migrate

При использовании команды migrate нужно создать учётную запись администратора вручную. Для этого наберите:

python manage.py createsuperuser

Программа также запросит имя пользователя, адрес электронной почты и пароль:

(ptest) ekzorchik@srv-trusty:~/ptest/example$ python manage.py createsuperuser

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

Email address: support@ekzorchik.ru

Password: Aa1234567

Password (again): Aa1234567

Superuser created successfully.

Тестирую созданную среду разработки:

(ptest) ekzorchik@srv-trusty:~/ptest/example$ python manage.py runserver 10.7.9.130:8080

Performing system checks...

System check identified no issues (0 silenced).

October 18, 2017 - 06:25:35

Django version 1.11.6, using settings 'example.settings'

Starting development server at http://10.7.9.130:8080/

Quit the server with CONTROL-C.

[18/Oct/2017 06:25:54] "GET /admin HTTP/1.1" 400 64378

Invalid HTTP_HOST header: '10.7.9.130:8080'. You may need to add u'10.7.9.130' to ALLOWED_HOSTS.

Ctrl + C

(ptest) ekzorchik@srv-trusty:~/ptest/example$ vi example/settings.py

#for default

#ALLOWED_HOSTS = []

# all access for hosts

ALLOWED_HOSTS = ['*']

# access for hosts

#ALLOWED_HOSTS = ['www.ekzorchik.ru','ekzorchik.ru']

(ptest) ekzorchik@srv-trusty:~/ptest/example$ python manage.py runserver 0.0.0.0:8080

После через браузер перейдя по ссылке: http://10.7.9.130:8080/admin меня перекинуло на страницу авторизации http://10.7.9.130:8080/admin/login/?next=/admin/, указываю созданные идентификационные данные:

Авторизуюсь в панели Администрирования Django

И после нажатия на кнопку Log In я успешно авторизован

Я успешно идентифицирован в Django админке

 

На заметку: Это и есть стандартный вид проекта Django являющегося каркасом.

А так выглядит дефолтный сайт.

Дефолтный сайт на фреймворке DjangoНа этом пока все, потихоньку двигаюсь дальше по мере того, как все откладывается в голове. С уважением автор блога Олло Александр aka ekzorchik.