Запуск dev-сервера и первый коммит

Запуск сайта в dev-режиме

Вы установили все необходимые пакеты и развернули Django-проект Yatube: он хотя и пуст, но уже работоспособен. Чтобы убедиться, что всё сделано правильно — надо запустить его. Обычно веб-проекты работают на специальных серверах, но в ходе разработки можно тестировать их, запуская прямо на рабочем компьютере. Для такого запуска в Django встроен упрощённый сервер, его называют «сервер разработчика», или «dev-сервер».Управление проектом Django происходит посредством файла manage.py. Этот файл автоматически создаётся в рабочей директории проекта; в вашем проекте этот файл лежит в директории yatube_poject/yatube.Для управления проектом этот файл запускают в Python и передают ему команды:

(venv)...Dev/yatube_poject/yatube$ python3 manage.py какая_то_команда
# Если у вас установлена ОС Windows - команда может не сработать.
# Вызывайте не python3, а просто python: 
(venv)...Dev/yatube_poject/yatube$ python manage.py какая_то_команда 

Так можно управлять Django-проектом: запускать его, останавливать, создавать в проекте новые приложения и выполнять множество других операций.

Запускаем!

  1. Откройте терминал и прейдите в корневую директорию проекта yatube_poject
  2. Активируйте виртуальное окружение
  3. Перейдите в папку с manage.py — yatube_poject/yatube
  4. Выполните команду, запускающую сервер в режиме разработки: python3 manage.py runserver (если что-то пойдёт не так — попробуйте вызвать не python3, а pythonpython manage.py runserver).
...Dev/yatube_poject$ source venv/bin/activate
# для windows: source venv/Scripts/activate

(venv)...Dev/yatube_poject$ cd yatube

(venv)...Dev/yatube_poject/yatube$ python3 manage.py runserver

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

March 05, 2021 - 04:27:33
Django version 2.2.19, using settings 'yatube.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C. 

В ответ на команду Django сообщает, что сервер запущен и проект доступен по адресу http://127.0.0.1:8000/. Дополнительно Django указывает на 17 каких-то недоделок, unapplied migration(s). Django хочет обновить базу данных, добавив в неё необходимую информацию. Для выполнения текущих задач в этом нет необходимости, так что подумаем об этом позже. А сейчас — откройте ссылку http://127.0.0.1:8000/ в любом браузере и насладитесь успехом:

Предполётная подготовка и первый коммит

Сделана большая часть работы: фреймворк Django установлен, проект работает. Настало время сохранить все изменения в Git и отправить их в удалённый репозиторий. Пока что ваш репозиторий yatube_project на GitHub выглядит точно так же, как в момент создания: пуст и безлюден.Отправить внесённые изменения на сервер GitHub можно в две команды (не спешите их выполнять):

  • git commit -m "Комментарий, описывающий изменения" сохранит внесённые вами изменения: Git создаст коммит, «точку восстановления». Если впоследствии вы в какой-то момент сломаете код — можно будет вернуться к этой точке и начать всё сначала. После выполнения команды коммит будет сохранён локально, на вашем компьютере.
  • git push отправит коммит на удалённый сервер (если у вас есть несколько незапушенных коммитов — на сервер будут отправлены они все). После этого внесённые изменения будут доступны на GitHub всем, у кого есть доступ к вашему репозиторию: например, ревьюеры Яндекс.Практикума смогут проверить вашу работу.

Но перед отправкой в Git нужно подготовить репозиторий и проект к работе.

Настройка gitignore

Важно убедиться, что на GitHub не будут отправлены файлы и папки, которые не нужно отслеживать. Всё, что не нужно отправлять в Git, должно быть перечислено в файле .gitignore.Какие файлы и директории должны быть добавлены в .gitignore?.git/.vscode/Верно, эту директорию — в игнор: в ней хранятся ваши персональные настройки редактора VSC, кроме вас они никому не нужны. Что должно быть внесено в файл .gitignore в проекте Yatube:

  • Файлы виртуального окружения. Их много, они тяжёлые, их проще установить через pip, чем гонять через Git.
  • Служебные файлы IDE.

Если .gitignore был сформирован с помощью автоматического шаблона для Python-проектов, то директория /venv в него уже добавлена.Если вы пишете код в VSC — в ваш проект могут добавляться служебные файлы в папке /.vscode. При использовании PyCharm название папки с настройками будет /.idea.Добавьте эти папки в список игнорируемых: просто возьмите и отредактируйте файл, добавив нужную строчку.

# Dev/yatube_project/.gitignore

.vscode/

... 
Все другие игнорируемые файлы и папки
... 

Сохранение зависимостей

Файлы виртуального окружения исключены из Git, репозиторий стал легче, но немедленно возникла иная проблема: если другой разработчик клонирует ваш проект — без экстрасенсорных способностей ему будет сложно понять, какие библиотеки нужны для работы проекта.Хорошей практикой будет сохранить список библиотек — и именно его включить в репозиторий.В Django их список зависимостей сохраняют в файле requirements.txt, традиционно его хранят в корне проекта. Создание этого файла автоматизировано и выполняется одной командой.Обратите внимание, что виртуальное окружение должно быть активно, а выполнять команду нужно из рабочей директории проекта yatube_project/

(venv) ... Dev/yatube_project$ pip freeze > requirements.txt 

В той директории, откуда выполнена команда, будет создан файл requirements.txt, в нём будут перечислены все пакеты Python, которые установлены в виртуальном окружении. Содержимое вашего requirements.txt будет таким:

Django==2.2.19 
pkg-resources==0.0.0
pytz==2021.1
sqlparse==0.4.1 

Обратите внимание, что если выполнить freeze без активированного виртуального окружения, в requirements.txt попадут все пакеты, установленные в системе, а не в виртуальном окружении. Не надо так: в этом случае от requirements.txt не будет никакой пользы, кроме вреда. Если всё сделано правильно — все библиотеки, нужные для работы проекта, будут перечислены в requirements.txt. В директории проекта этот файл должен располагаться так:

Dev
 └── yatube_project
     ├── .git/  
     ├── .vscode/   
     ├── yatube/ <-- основная рабочая папка с кодом проекта
     ├── venv/
     ├── README.md
     ├── requirements.txt <-- НОВОЕ: файл с зависимостями проекта 
     ├── LICENSE
     └── .gitignore 

При развёртывании проекта на новой машине нужно из папки, содержащей requirements.txt, при активированном виртуальном окружении выполнить команду

(venv) ... Dev/yatube_project$ pip install -r requirements.txt 

Менеджер pip установит все зависимости, перечисленные в requirements.txt, в текущее окружение. Очень удобно.

Описание проекта в README.md

Описание проекта расположено в файле README.md.Стандартных правил описания проекта не существует.Для учебных проектов придерживайтесь такого плана:

  • название проекта
  • краткое описание
  • технологии в проекте
  • инструкции по запуску
  • автор

Описание можно и нужно дополнять по ходу развития проекта.Текст в описании можно отформатировать:

# Это будет большой заголовок
## Это будет заголовок поменьше
### Это тоже заголовок, самый маленький
``` Этот текст будет выглядеть как код. ```
_Это будет курсив_
*Это будет жирный текст*
- Это
- Будет
- Список
- С точечками-буллетами 

Описание проекта «Анфиса для друзей» будет выглядеть так:

# Анфиса для друзей
### Описание
Благодаря этому проекту можно будет угощать мороженым друзей из разных городов.
### Технологии
Python 3.7
Django 2.2.19
### Запуск проекта в dev-режиме
- Установите и активируйте виртуальное окружение
- Установите зависимости из файла requirements.txt
```
pip install -r requirements.txt
``` 
- В папке с файлом manage.py выполните команду:
```
python3 manage.py runserver
```
### Авторы
Андрей, Стёпа, Лера и Максим 

Хозяйке на заметку: сделать красивое описание проекта помогут специальные сервисы в Сети. Поисковый запрос онлайн md редактор даст вам большой выбор. Выберите понравившийся сервис и оформите README.md для проекта Yatube.

  1. Придумайте свою структуру описания проекта
  2. Напишите в чат когорты о том, какой редактор вы выбрали и какую структуру придумали.
  3. Объявите их самыми лучшим и затейте holywar!

Программисты очень любят спорить о всяких вещах. А в спорах рождается истина и выявляются лучшие инструменты для работы.





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: