Для себя я понял, что название Django формирует специальный фреймворк ответственный за производительную разработку приложений и сайтов посредством 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/
, указываю созданные идентификационные данные:
И после нажатия на кнопку Log In я успешно авторизован
На заметку: Это и есть стандартный вид проекта Django являющегося каркасом.
А так выглядит дефолтный сайт.
На этом пока все, потихоньку двигаюсь дальше по мере того, как все откладывается в голове. С уважением автор блога Олло Александр aka ekzorchik.