Чтобы запустить новый проект Django, вам нужно использовать команду django-admin
. Эта команда позволяет вам создать каталог проекта и некоторые основные файлы для вашего приложения Django. Например, если вы хотите создать проект под названием my_project
, вы можете запустить эту команду в своем терминале:
django-admin startproject my_project
├──
Файл manage.py
— это сценарий, который позволяет вам выполнять различные задачи для вашего проекта, такие как запуск сервера разработки, создание миграции базы данных и тестирование вашего кода. Каталог project/
содержит настройки и файлы конфигурации вашего проекта.
Файл settings.py
определяет основные настройки вашего проекта, такие как подключение к базе данных, установленные приложения и промежуточное программное обеспечение. Файл urls.py
сопоставляет URL-адреса вашего проекта с представлениями ваших приложений.
python manage.py runserver
manage.py
: скрипт, предоставляющий различные команды для управления вашим проектом, например для создания приложений, переноса базы данных и тестирования вашего кода.
project/
: каталог, содержащий настройки и файлы конфигурации вашего проекта. Основные файлы в этом каталоге:
`settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application.
apps/
: каталог, содержащий все приложения Django, составляющие ваш проект. Каждое приложение Django представляет собой отдельный пакет Python, который предоставляет определенную функциональность или функцию для вашего веб-приложения. Вы можете создавать свои собственные приложения или использовать существующие из сторонних источников.
python manage.py runserver
python manage.py test
Ran 1 test in 0.001s Ok
FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data
Этот файл docker-compose.yml определяет две службы: web
и db
. web
сервис создаст образ Docker из файла Dockerfile, который мы создали в предыдущем разделе. web
сервис также предоставит порт 8000 на хост-компьютере, чтобы мы могли получить доступ к серверу разработки Django.
Служба db
будет использовать официальный образ Docker PostgreSQL. Служба db
также смонтирует каталог postgres
на хост-компьютере в каталог /var/lib/postgresql/data
внутри контейнера. Это обеспечит сохранение файлов базы данных между перезапусками контейнера.
docker-compose up -d
Вы также можете войти на страницу администратора Django по адресу //localhost:8000/admin/
. По умолчанию имя пользователя и пароль — admin
и admin
.
- Перейдите на страницу своего профиля и нажмите кнопку «Создать» рядом с пунктом «Репозитории» .
— Дайте своему репозиторию имя, например django-docker-app
, и при необходимости добавьте описание.
- Нажмите кнопку Создать репозиторий .
- Перейдите в папку проекта Django в терминале и введите git status
, чтобы увидеть текущее состояние вашего репозитория. Вы должны увидеть что-то вроде этого:
On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a")
Это означает, что у вас есть некоторые измененные файлы, которые не подготовлены для фиксации. Чтобы подготовить их к фиксации, вам нужно использовать команду git add
.
— Введите git add
. подготовить все измененные файлы для фиксации. Альтернативно вы можете указать имена файлов, которые мы хотим подготовить, например git add
Dockerfile docker-compose.yml
requirements.txt
.
- Введите git status
еще раз, чтобы увидеть обновленное состояние нашего репозитория. Вы должны увидеть что-то вроде этого:
On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt
Это означает, что у вас есть некоторые изменения, подготовленные для фиксации. Чтобы зафиксировать их, вам нужно использовать команду git commit
.
— Введите git commit -m "Add Docker configuration files"
чтобы зафиксировать поэтапные изменения с сообщением, описывающим, что мы сделали. Альтернативно вы можете опустить флаг -m
и ввести более длинное сообщение в редакторе, который откроется после ввода git commit
.
- Введите git status
еще раз, чтобы увидеть окончательное состояние нашего репозитория. Вы должны увидеть что-то вроде этого:
On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean
Это означает, что у вас есть один коммит, который еще не отправлен в удаленный репозиторий. Чтобы отправить его, вам нужно использовать команду git push
.
— Введите git push origin main
, чтобы отправить локальный коммит в удаленный репозиторий на GitHub.
Альтернативно вы можете указать удаленное имя и имя ветки, которую вы хотите отправить, например git push origin main
.
- Перейдите в и нажмите кнопку «Зарегистрироваться» .
- Заполните необходимую информацию, такую как имя, адрес электронной почты, пароль и т. д. - Выберите основной язык разработки, например Python.- Нажмите кнопку «Создать бесплатную учетную запись» .
- Проверьте нашу электронную почту и нажмите ссылку, чтобы подтвердить нашу учетную запись.
- Откройте терминал и введите heroku --version
, чтобы убедиться, что установка прошла успешно. Вы должны увидеть что-то вроде этого:
heroku/7.59.0 win32-x64 node-v12.21.0
- Перейдите в папку проекта Django в терминале и введите heroku login
, чтобы войти в свою учетную запись Heroku с помощью инструмента Heroku CLI. Вас могут попросить ввести адрес электронной почты и пароль или использовать веб-браузер для аутентификации.
— Введите heroku create django-docker-app
, чтобы создать новое приложение Heroku с именем django-docker-app
. Альтернативно, вы можете опустить имя и позволить Heroku сгенерировать для вас случайное имя. Вы должны увидеть что-то вроде этого:
Creating ⬢ django-docker-app... done //django-docker-app.herokuapp.com/ | //git.heroku.com/django-docker-app.git
- Введите heroku config:set SECRET_KEY=<your_secret_key>
чтобы установить переменную среды для настройки SECRET_KEY нашего проекта Django. Вам необходимо заменить <your_secret_key>
случайной строкой, которую вы можете сгенерировать с помощью такого инструмента, как .
Альтернативно вы можете использовать существующий секретный ключ, который есть в вашем файле settings.py , но это не рекомендуется по соображениям безопасности.
- Введите heroku addons:create heroku-postgresql:hobby-dev
чтобы добавить бесплатную надстройку базы данных PostgreSQL в ваше приложение Heroku. Это создаст новую базу данных для вашего проекта Django и установит переменную среды для параметра DATABASE_URL вашего проекта Django. Вы должны увидеть что-то вроде этого:
Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation
Это означает, что вы добавили надстройку базы данных PostgreSQL с именем PostgreSQL-curved-12345 и URL-адресом DATABASE_URL .
- Введите heroku config
, чтобы просмотреть список переменных среды, которые вы установили для своего приложения Heroku. Вы должны увидеть что-то вроде этого:
=== django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key>
Это означает, что у вас есть две переменные среды, DATABASE_URL и SECRET_KEY , которые вы можете использовать в настройках проекта Django.
Как развернуть проект Django в Heroku с помощью команды heroku
?
Чтобы развернуть наш проект Django в Heroku с помощью команды heroku
, вам необходимо выполнить следующие шаги:
- Перейдите в папку проекта Django в терминале и введите heroku container:login
, чтобы войти в реестр контейнеров Heroku с помощью инструмента Heroku CLI. Это позволит вам отправить наш образ Docker в Heroku.
- Введите heroku container:push web -a django-docker-app
, чтобы создать и отправить образ Docker в Heroku. Вам необходимо указать имя вашего приложения Heroku, в данном случае django-docker-app . Вы должны увидеть что-то вроде этого:
=== Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command.
— Введите heroku container:release web -a django-docker-app
, чтобы выпустить наш образ Docker в наше приложение Heroku. Вы должны увидеть что-то вроде этого:
Releasing images web to django-docker-app... done
- Введите heroku run python manage.py migrate -a django-docker-app
чтобы запустить миграцию базы данных в вашем приложении Heroku. Это создаст необходимые таблицы и индексы для вашего проекта Django в базе данных PostgreSQL. Вы должны увидеть что-то вроде этого:
Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK
- Введите heroku open -a django-docker-app
, чтобы открыть развернутое веб-приложение в веб-браузере. Вы должны увидеть наш проект Django, работающий на Heroku.
Вы успешно развернули свой проект Django в Heroku с помощью команды heroku
. Теперь вы можете наслаждаться своим веб-приложением и делиться им с другими.
Читать далее: CI/CD необходим для быстрой и надежной доставки программного обеспечения. Чтобы оптимизировать конвейер CI/CD для достижения максимальной эффективности, выбирайте правильные инструменты, оптимизируйте рабочий процесс, используйте автоматическое тестирование и контроль качества, распараллеливайте сборки, используйте циклы мониторинга и обратной связи, выполняйте проверки безопасности и постоянно совершенствуйте свой конвейер. Читать далее
Читайте также: Все, что мы узнали на DockerCon 2023. Подробнее