Как обновить django linux

Обновлено: 07.07.2024

Этот документ призван проинструктировать вас о том, как получить и запустить Django.

Установка Python¶

Изначально написанный на Python, Web-фреймворк Django требует установки самого Python. Подойдет Python 2.7, 3.2 или 3.3.

Django на Jython

Если вы используете Jython (реализация языка Python на языке Java), вам необходимо пройти несколько дополнительных шагов. См. Запускаем Django на Jython для получения более подробной информации.

Python на Windows

Если вы только начали изучать Django и используете Windows, советуем почитать How to install Django on Windows.

Установка Apache и mod_wsgi¶

См. Использование Django и mod_wsgi для получения информации о настройке mod_wsgi сразу после того, как он будет установлен.

Создание рабочей базы данных¶

Если вы планируете использовать функционал API баз данных Django, вам нужно удостовериться, что сервер баз данных запущен. Django поддерживает много различных СУБД. В частности к ним относятся PostgreSQL, MySQL, Oracle и SQLite.

В дополнение к официально поддерживаемым базам данных есть бэкэнды, поставляемые третьими сторонами, которые позволяют использовать другие БД с Django.

В дополнение к установке необходимой БД вы также должны убедиться, что вами выбран и установлен соответствующий модуль Python.

При использовании PostgreSQL, вам понадобится пакет postgresql_psycopg2. Вы можете обратиться к PostgreSQL notes для получения дальнейших инструкций, специфичных для этой БД.

Пользователям Windows следует проверить наличие неофициальной скомпилированной для Windows версии.

При использовании MySQL, вам понадобится пакет MySQL-python версии 1.2.1p2 или выше. Вы также можете получить инструкции, специфичные для этой БД.

Если вы используете SQLite, вам следует прочитать про особенности использования SQLite.

При использовании Oracle, вам понадобится копия cx_Oracle, но, пожалуйста, обязательно ознакомьтесь с инструкцией notes for the Oracle backend , которая содержит информацию о поддерживаемых версиях Oracle и cx_Oracle .

При использовании неофициальных бэкендов от сторонних разработчиков смотрите соответствующую документацию о дополнительных требованиях.

Если вы планируете использовать команду manage.py migrate для автоматической генерации таблиц БД для ваших моделей (после первого запуска Django и создания проекта), вам нужно убедиться, что Django имеет разрешение на создание и изменение таблиц БД; если же вы хотите создавать таблицы вручную, вам надо просто предоставить Django разрешения SELECT , INSERT , UPDATE и DELETE . После создания пользователя БД с указанными привилегиями, вам понадобится изменить настройки вашего проекта, см. DATABASES .

Если вы используете среду тестирования Django для проверки запросов к базе данных, Django понадобится разрешение на создание тестовой БД.

Удаление предыдущей версии Django¶

Вам нужно полностью удалить предыдущую версию Django перед установкой новой версии.

В случае, если Django предварительно установлен с помощью pip или easy_install , вам не понадобится удалять предыдущую версию вручную: просто запустите pip или easy_install снова, это приведёт к обновлению текущей версии на более новую.

В случае, если вы устанавливали Django, используя python setup.py install , его удаление будет заключаться в удалении самой директории django из site-packages . Чтобы найти нужную директорию вы должны запустить следующую команду в командной оболочке (не в интерактивной оболочке Python):

Установка Django¶

Инструкции по установке несколько различаются в зависимости от того, каким способом вы устанавливаете пакет: установка для конкретного дистрибутива, загрузка последней официальной версии или получение текущей разрабатываемой версии.

Это просто, независимо от того, какой вариант будет вами выбран.

Установка пакета для конкретного дистрибутива¶

Проверьте наличие готового пакета, если ваша операционная система предоставляет возможность получить пакет/установщик Django. Как правило, этот способ удобен автоматическим разрешением зависимостей и обновлением версии Django.

Установка официальной версии с помощью pip

Это рекомендуемый способ установки Django.

Установите pip. Самым простым способом сделать это является использование автономного установщика pip. Если ваш дистрибутив уже включает установленную версию pip , возможно, вам потребуется обновить её до более свежей. (Если версия устарела, вы сразу поймёте это, поскольку установка не будет работать.)

(опционально) Взгляните на virtualenv и virtualenvwrapper. Эти программы предоставляют изолированное окружение Python, что намного более практично, чем установка общесистемных пакетов. Такой подход также позволяет провести установку без административных прав. Это информация для размышления, если вы захотите использовать их.

Если вы используете Linux, Mac OS X или иные Unix-подобные системы, введите команду sudo pip install Django в терминале. При использовании Windows запустите командную оболочку с правами администратора и впишите pip install Django . Эта команда установит Django в системную директорию site-packages .

При использовании virtualenv вам не нужны административные полномочия или запуск программ через sudo , Django будет установлен в окружении virtualenv в директорию site-packages .

Установка официальной версии вручную¶

Скачайте последнюю стабильную версию со страницы загрузки.

Распакуйте загруженный файл (например, командой tar xzvf Django-X.Y.tar.gz , где X.Y номер версии пакета). Если у вас установлена Windows, вы должны прежде загрузить инструмент командной строки bsdtar для запуска вышеуказанной команды или использовать для распаковки графические утилиты наподобие 7-zip.

Перейдите в каталог, созданный на шаге 2 (например, cd Django-X.Y ).

Если вы используете Linux, Mac OS X или иные Unix-подобные системы, введите команду sudo python setup.py install в терминале. Если у вас установлена Windows, запустите командную оболочку с правами администратора и впишите python setup.py install . Эта команда установит Django в системную директорию site-packages .

Удаление предыдущей версии Django

При использовании данного метода установки очень важно удалить предыдущую версию Django, если она была установлена ранее. В противном случае вы можете столкнуться с невозможностью установки новой версии.

Установка разрабатываемой версии¶

Следим за разработкой Django

Если вы приняли решение использовать текущую разрабатываемую версию Django, вам нужно следить за информацией о выпуске новых исправлений на the development timeline. Это поможет вам оставаться в курсе происходящих изменений , таких как включение новой функциональности. Для получения изменений вы должны будете обновить вашу копию Django. (Для стабильных релизов, все необходимые изменения описаны в примечаниях к выпуску.)

Если вы хотите обновить Django до разрабатываемой версии, чтобы иметь возможность использовать последние, возможно, нестабильные изменения и улучшения, следуйте этой инструкции:

Убедитесь, что у вас установлен Git и вы можете запустить его из командной оболочки. (Введите git help в командной оболочке, чтобы проверить это.)

Эта команда создаст каталог django-trunk в вашей текущей директории.

(При использовании virtualenv можно опустить sudo .)

Это сделает код Django импортируемым, а также сделает доступным запуск django-admin.py . Иначе говоря, всё готово!

Если у вас нет возможности установить pip, смотрите альтернативные инструкции по установке разрабатываемой версии без pip.

Не запускайте команду sudo python setup.py install , поскольку вы уже провели эквивалентные действия на шаге 3.

Когда вам понадобится обновить вашу копию Django, просто запустите команду git pull в директории django-trunk .После того, как вы сделаете это, Git автоматически загрузит изменения.

Установка разрабатываемой версии без pip¶

Если у вас не установлен pip, вы можете вручную изменить путь поиска Python.

Сначала следуйте шагам 1 и 2, данным выше, так вы получите директорию django-trunk , включающую последнюю разрабатываемую версию Django. Теперь добавьте файл .pth , содержащий полный путь к django-trunk в каталоге site-packages . Например, для Unix-like систем:

В строке, данной выше, измените WORKING-DIR/django-trunk на полный путь к вашей новой директории django-trunk , также измените SITE-PACKAGES-DIR на полный путь к системной директории с site-packages .

Местонахождение каталога site-packages зависит от используемой вами операционной системы и места, куда был установлен Python. Чтобы определить, где находится site-packages запустите следующую команду:

(запуск осуществляется в командной оболочке, а не в интерактивной оболочке Python)

Некоторые Debian-based дистрибутивы Linux имеют обособленную директорию site-packages для пакетов, установленных пользователем, например, при установке Django из загруженного архива (tarball). Команда, указанная выше, отобразит местонахождение каталога site-packages , пользовательские директории можно найти в /usr/local/lib/ вместо /usr/lib/ .

Далее вам нужно сделать утилиту django-admin.py доступной для системной переменной окружения PATH .

В Unix-like системах для этого создаётся символьная ссылка на файл django-trunk/django/bin/django-admin.py в директории, содержащей системные пути, такой как /usr/local/bin . К примеру так:

(В строке, данной выше, измените WORKING-DIR на полный путь к вашей новой директории django-trunk .)

Хотя иногда это может быть сложный процесс, обновление до последней версии Django имеет несколько преимуществ:

  • Добавлены новые функции и улучшения.
  • Ошибки исправлены.
  • Старая версия Django в конечном итоге больше не будет получать обновления безопасности. (см. Поддерживаемые версии ).
  • Обновление по мере появления каждой новой версии Django делает будущие обновления менее болезненными, так как ваша база кода постоянно обновляется.

Вот несколько вещей, которые необходимо учитывать, чтобы сделать процесс обновления максимально плавным.

Обязательное к прочтению ¶

Если вы делаете обновление впервые, полезно прочитать руководство по различным процессам выпуска .

После этого вам следует ознакомиться с изменениями, внесенными в новые версии Django:

  • Прочтите примечания к выпуску для каждого «окончательного» выпуска, начиная с выпуска, следующего за вашей текущей версией Django, до версии, до которой вы планируете перейти, включительно.
  • Посмотрите на график прекращения поддержки соответствующих версий.

Обратите особое внимание на обратно несовместимые изменения, чтобы получить четкое представление о том, что потребуется для успешного обновления.

Если вы обновляете более чем одну версию функции (например, с 2.0 до 2.2), обычно проще обновлять каждую версию функции постепенно (с 2.0 до 2.1 до 2.2), чем вносить все изменения для каждой версии функции сразу. Для каждого выпуска функций используйте последний выпуск исправлений (например, для 2.1 используйте 2.1.15).

Такой же подход постепенного обновления рекомендуется при переходе с одного LTS на другой.

Зависимости ¶

В большинстве случаев необходимо также обновить до последней версии ваши зависимости, связанные с Django. Если версия Django была выпущена недавно или некоторые из ваших зависимостей не поддерживаются должным образом, некоторые из ваших зависимостей могут еще не поддерживать новую версию Django. В этих случаях вам, возможно, придется подождать, пока не будут выпущены новые версии ваших зависимостей.

Устранение предупреждений об устаревании ¶

Перед обновлением рекомендуется устранить все предупреждения об устаревании, возникающие в вашем проекте при использовании текущей версии Django. Исправление этих предупреждений перед обновлением гарантирует, что вы будете проинформированы об областях кода, которые необходимо изменить.

В Python предупреждения об устаревании по умолчанию отключены. Вы должны включить их с помощью параметра -Wa командной строки Python или PYTHONWARNINGS переменная окружения. Например, чтобы показывать предупреждения во время выполнения тестов:

Если вы не используете средство запуска тестов Django, вам может потребоваться также убедиться, что любой вывод консоли не записывается, что может скрыть предупреждения об устаревании. Например, если вы используете pytest :

Устраните все предупреждения об устаревании в вашей текущей версии Django, прежде чем продолжить процесс обновления.

Установка ¶

Когда вы будете готовы, пора установить новую версию Django . Если вы используете и это серьезное обновление, вы можете сначала настроить новую среду со всеми зависимостями. virtual environment

Если вы установили Django с помощью pip , вы можете использовать флаг --upgrade или -U :

Тестирование ¶

Когда новая среда настроена, запустите полный набор тестов для своего приложения. Опять же, полезно включить предупреждения об устаревании, чтобы они отображались в тестовых выходных данных (вы также можете использовать флаг, если вы тестируете свое приложение вручную ): manage.py runserver

После выполнения тестов исправьте все сбои. Пока вы еще свежи в памяти примечания к выпуску, возможно, сейчас самое время воспользоваться преимуществами новых функций Django путем рефакторинга кода, чтобы исключить любые предупреждения об устаревании.

Развертывание ¶

Когда вы достаточно уверены, что ваше приложение работает с новой версией Django, вы готовы приступить к развертыванию обновленного проекта Django.

Хотя иногда этот процесс может быть немного сложным, обновление Django до последней версии имеет несколько преимуществ:

  • Добавлены новые функции и улучшения.
  • Исправлены ошибки.
  • Более старые версии Django больше не получают обновления безопасности по прошествии определенного периода времени (см. Поддерживаемые версии ).
  • Обновляя Django с каждым новым выпуском, вы упрощаете себе работу над последующими обновлениями, потому что ваш код всегда остается актуальным.

Вот несколько моментов, которые следует учитывать, чтобы сделать процесс миграции максимально плавным.

Рекомендуемая литература ¶

Если это ваше первое обновление, стоит прочитать руководство по различным процессам выпуска .

После этого предлагаем вам ознакомиться с изменениями, внесенными в новую версию Django:

  • Прочтите примечания к выпуску для каждой «окончательной» версии в зависимости от вашей текущей версии Django, вплоть до версии, до которой вы планируете обновить.
  • Просмотрите график устаревания затронутых версий.

Обратите особое внимание на изменения, не имеющие обратной совместимости, чтобы получить хорошее представление о том, что потребуется для успешного обновления.

Если вы обновляете, пропуская более одной основной версии (например, от 2.0 до 2.2), обычно проще выполнить обновление через каждую промежуточную основную версию (от 2.0 до 2.1, затем до 2.2), а не через '' внести все необходимые изменения сразу во все основные версии. Для каждой из промежуточных версий используйте последний выпуск исправлений (например, для 2.1 используйте 2.1.15).

Такой же подход инкрементного обновления рекомендуется при обновлении с одной версии LTS на другую.

Зависимости ¶

В большинстве случаев также необходимо будет обновить зависимости Django до последней версии. Если версия Django была выпущена недавно, или если некоторые из ваших зависимостей не поддерживаются должным образом, некоторые зависимости могут еще не поддерживать новую версию Django. В этом случае вам, возможно, придется подождать, пока не будут выпущены новые версии ваших зависимостей.

Устранение предупреждений об устаревании ¶

Перед обновлением рекомендуется устранить все предупреждения об устаревании, генерируемые вашим проектом, с помощью текущей версии Django. Исправление этих предупреждений перед обновлением гарантирует, что вы будете информированы о фрагментах кода, которые необходимо изменить.

В Python предупреждения об устаревании по умолчанию не отображаются. Вы должны включить их с помощью параметра командной строки Python -Wa или с помощью переменной среды PYTHONWARNINGS , Например, чтобы отображать предупреждения при запуске тестов:

Если вы не используете тестовый исполнитель Django, вам также может потребоваться убедиться, что вывод консоли не записывается, что скроет предупреждения об устаревании. Например, если вы используете pytest :

Устраните все предупреждения об устаревании в вашей текущей версии Django, прежде чем продолжить процесс обновления.

Установка ¶

Когда вы будете готовы, пора установить новую версию Django . Если вы используете один из них, и это серьезное обновление, может быть желательно сначала создать новую среду, содержащую все зависимости. environnement virtuel

Если вы установили Django с помощью pip , вы можете указать опцию --upgrade или -U :

Тесты ¶

Когда новая среда будет установлена, запустите полный набор тестов для своего приложения. Опять же, полезно включить эти предупреждения об устаревании, чтобы они отображались в результатах тестирования (вы также можете использовать флаг, если вы тестируете свое приложение вручную ): manage.py runserver

После выполнения тестов исправьте все ошибки. Небольшой совет: воспользуйтесь тем фактом, что примечания к выпуску еще свежи в вашей памяти, чтобы обновить код, воспользовавшись новыми функциями Django и, таким образом, исключив возможные предупреждения об устаревании.

Развертывание ¶

Если вы достаточно уверены, что ваше приложение будет бесперебойно работать с новой версией Django, вы готовы приступить к развертыванию обновленного проекта Django.

Цель этого документа - подготовить вас к работе с Django.

Установка Python ¶

Django - это веб-фреймворк Python. См. Какую версию Python можно использовать с Django? Больше подробностей.

Python в Windows

Если вы новичок в Django и используете Windows, эта документация может быть полезна: Как установить Django с Windows .

Установка Apache и mod_wsgi ¶

Если вы просто хотите поэкспериментировать с Django, переходите к следующему разделу; Django включает легкий веб-сервер, который вы можете использовать для тестирования, поэтому нет необходимости настраивать Apache, пока вы не захотите развернуть Django в производственной среде.

Если вы хотите использовать Django на рабочем сайте, используйте Apache с mod_wsgi., mod_wsgi работает в двух режимах: встроенный режим и режим демона. Во встроенном режиме mod_wsgi сравним с mod_perl, он интегрирует Python в Apache и загружает код Python в память при запуске сервера. Код остается в памяти на протяжении всего жизненного цикла процесса Apache, обеспечивая значительное улучшение производительности по сравнению с другими конфигурациями. В режиме демона mod_wsgi делегирует управление запросами независимому процессу демона. Этот процесс может выполняться под другим именем пользователя, чем веб-сервер, что может повысить безопасность. С другой стороны, процесс можно перезапустить без перезапуска всего веб-сервера Apache, что может упростить обновление кода. Обратитесь к документации mod_wsgi, чтобы определить, какой режим лучше всего подходит для вас. Убедитесь, что Apache установлен и его модуль mod_wsgi включен. Django работает с любой версией Apache, которая поддерживает mod_wsgi.

См. Как использовать Django с mod_wsgi для получения дополнительной информации о том, как настроить mod_wsgi после его установки.

Если у вас нет возможности использовать mod_wsgi, не отчаивайтесь: Django поддерживает множество других сценариев развертывания. Один из них - uWSGI ; он отлично работает с nginx . Кроме того, Django следует спецификации WSGI ( PEP 3333 ), что позволяет ему работать на различных серверных платформах.

Начало работы с базой данных ¶

Если вы планируете использовать функции базы данных Django, вы должны предпринять шаги, чтобы сделать базу данных работоспособной. Django умеет управлять несколькими разными серверами баз данных; официально он поддерживает PostgreSQL , MariaDB , MySQL , Oracle и SQLite .

Если вы разрабатываете небольшой проект или что-то, что не планируете развертывать в производственной среде, SQLite обычно является лучшим вариантом, поскольку для него не требуется отдельный сервер. Однако SQLite имеет много отличий от других баз данных, и если вы работаете над более крупным проектом, рекомендуется разрабатывать с той же базой данных, которая будет использоваться в производстве.

Помимо официально поддерживаемых баз данных, существуют внешние по отношению к Django механизмы, которые позволяют использовать другие базы данных с Django.

В дополнение к ядру базы данных также необходимо проверить, установлены ли привязки Python для базы данных.

  • Если вы используете PostgreSQL, вам понадобится пакет psycopg2 . Более подробную информацию вы можете найти в Примечаниях к PostgreSQL .
  • Если вы используете MySQL или MariaDB, вам понадобится драйвер API базы данных, например mysqlclient . См. Примечания к MySQL для более подробной информации.
  • Если вы используете SQLite, рекомендуется прочитать примечания к SQLite Engine .
  • Если вы используете Oracle, вам понадобится копия cx_Oracle , но, пожалуйста, прочтите специальные примечания для Oracle Database Engine для получения подробной информации о поддерживаемых версиях Oracle и cx_Oracle .
  • Если вы используете неофициальный внешний движок, обратитесь к сопроводительной документации, чтобы узнать о возможных дополнительных ограничениях.

Если вы планируете использовать команду Django для автоматического создания таблиц базы данных для ваших моделей (после завершения установки Django и создания проекта), вам необходимо убедиться, что у Django есть разрешения на создание. и изменить таблицы в базе данных, которую вы используете; если вы думаете , что вы вручную создать таблицы, вы можете назначить права доступа к Джанго , , и . После создания пользователя базы данных с этими разрешениями встанет вопрос об указании деталей подключения в файле настроек вашего проекта, подробнее см . manage.py migrate SELECT INSERT UPDATE DELETE DATABASES

Если вы используете тестовую инфраструктуру Django для тестирования запросов к базе данных, Django потребуются необходимые разрешения для создания тестовой базы данных.

Установка Django кода ¶

Инструкции по установке немного отличаются в зависимости от того, устанавливаете ли вы пакет из своего дистрибутива, загружаете последнюю официальную версию или получаете последнюю версию в разработке.

Установка официальной версии с ¶

Это рекомендуемый способ установки Django.

Установите pip . Самый простой способ - использовать автономный установщик pip . Если в вашем дистрибутиве уже установлена ​​версия pip , возможно, потребуется обновить ее, если она слишком старая. В этом случае вы увидите это, потому что установка не будет работать.

Взгляните на venv . Этот инструмент предоставляет изолированные среды Python, которые намного удобнее, чем установка общесистемных пакетов. Он также позволяет устанавливать пакеты без прав администратора. Учебник вклад проведет вас через создание виртуальной среды.

После создания и активации виртуальной среды введите команду:

Установка пакета из дистрибутива ¶

Просмотрите примечания к дистрибутиву, чтобы убедиться, что ваша платформа / дистрибутив предлагает официальные пакеты или установщики Django. Пакеты, предоставляемые дистрибутивами, обычно позволяют использовать автоматическую установку поддерживаемых зависимостей и обновлений; однако эти пакеты редко соответствуют последним версиям Django.

Установка разрабатываемой версии ¶

Мониторинг разработки Django

Если вы решите использовать последнюю разрабатываемую версию Django, рекомендуется внимательно следить за процессом разработки, а также за примечаниями к выпуску следующей версии . Это поможет вам оставаться в курсе любых новых функций, которые вы можете использовать, или изменений, которые вам нужно будет внести в свой код при обновлении вашей копии Django (для стабильных выпусков любые необходимые изменения документируются в примечания к выпуску).

Если вы хотите иметь возможность время от времени обновлять свою версию Django, добавляя последние исправления и улучшения, следуйте этим инструкциям:

Убедитесь, что Git установлен и вы можете запускать его команды с терминала (введите в командной строке, чтобы проверить его). git help

Создайте рабочую копию основной ветки разработки Django следующим образом:

Каталог django будет создан в текущем каталоге.

Убедитесь, что интерпретатор Python может загружать код из Django. Самый удобный способ сделать это - использовать виртуальную среду и pip . Учебник вклад проведет вас через создание виртуальной среды.

После настройки и активации виртуальной среды выполните следующую команду:

Это сделает код Django импортируемым, а также предоставит служебную команду django-admin . Другими словами, все будет готово!

Если вы хотите обновить свою копию исходного кода Django, введите команду из каталога . Когда вы это сделаете, Git загрузит все изменения. git pull django

Читайте также: