Создание первого веб-приложения с помощью Django

Мотивация

На днях мой брат спросил меня, могу ли я создать для него веб-сайт, с помощью которого можно было бы собирать данные, вводимые пользователями, выполнять некоторые вычисления и привлекать потенциальных клиентов. Я не работал над созданием сайтов со времен Geocities и MySpace. Ну, может быть, не так давно, но я довольно сильно отстал от темы, поскольку веб-программирование - не моя повседневная работа. Моим последним побочным проектом был сайт ресторана, созданный много лет назад, который я сделал с помощью PHP, поэтому я провел небольшое интернет-исследование, чтобы узнать, что популярно именно сейчас.

Цели

Цели

Простая в использовании IDE (интегрированная среда разработки). На моей нынешней работе (системным инженером) мне пришлось разрабатывать сценарии для автоматизации создания документов. Одна из проблем конкретного набора инструментов, который мы используем, заключается в том, что в нем нет редактора исходного кода. Нет подсветки синтаксиса или завершения кода. Это очень неудобно. Я понятия не имею, работает ли то, что я пишу, пока не запущу это и не увижу ошибки / предупреждения.

Отладка выполняется с помощью операторов печати. Так работать нельзя.

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

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

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

Победители…

Веб-фреймворк Django, использующий Python. Оказывается, этот инструмент автоматизации тестирования, который мы планировали использовать на работе, использует Python, так что это сыграло большую роль в том, что я обратил на него внимание, как на язык программирования общего назначения.

У меня был некоторый опыт работы с Java, но Spring оказался слишком тяжелым для этого проекта. Решения на основе Javascript, такие как стек MEAN, выглядели мощно, но я стараюсь не иметь с ними дел, если только это не (внешний интерфейс).

PyCharm. Выбрав Python, выбрать IDE было довольно просто. У PyCharm много фанатов, и я обнаружил, что к нему легко привыкнуть по сравнению с плагином PyDev в Eclipse или редактором IDLE, который поставляется вместе с Python.

Давайте создадим веб-приложение!

Внимание: все это я проделал на своем MacBook. Шаги будут отличаться, если вы используете Windows. Мой стационарный компьютер сейчас пылится и используется только эпизодически (для игр).

Установите Python

Загрузите Python с официального сайта. После установки убедитесь в том, что все готово. Откройте окно терминала и введите в него приведенные ниже команды.

$ python --version
Python 3.7.6

Создайте виртуальную среду

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

Сначала создайте папку для проекта.

$ mkdir mywebapp 
$ cd mywebapp

Затем создайте и активируйте виртуальную среду. Вы узнаете, что это работает, когда увидите «(myvenv)» в командной строке терминала.

$ python -m venv myvenv
$ source myvenv/bin/activate
(myvenv) ~$

Установите Django

Введите приведенную ниже строку, и веб-фреймворк Django будет установлен. Серьезно, это так просто.

(myvenv) ~ $ python -m pip install Django

Создайте проект Django

Создадим наш первый проект Django.

(myvenv) ~$ python -m pip install Django 

Это действие создает структуру каталогов, а также файлы, необходимые для начала работы. Это выглядит примерно так.

mywebapp 
├── manage.py 
├── mysite 
│ ├── __init__.py 
| ├── asgi.py 
│ ├── settings.py 
│ ├── urls.py 
│ └── wsgi.py 
├── myvenv 
    └── ...

Настройте PyCharm для комфортной работы

Для работы с этими файлами можно использовать любой текстовый редактор, но мы не дикари. Пришло время установить PyCharm.

Перейдите на официальную страницу загрузки PyCharm и скачайте версию Community Edition. Это бесплатно, и мне нравится, что это бесплатно. Когда PyCharm будет установлен, откройте его, и вы увидите что-то вроде этого.

Настройте PyCharm для комфортной работы

Откройте созданный вами проект Django

Нажмите кнопку «Открыть» и найдите каталог веб-приложения, который вы создали ранее.

Откройте созданный вами проект Django

Нажмите кнопку «Открыть», чтобы выбрать его в качестве рабочего каталога, после чего вы увидите структуру каталогов проекта.

Откройте созданный вами проект Django - 2

Подготовьте сервер к работе

Проект уже должен быть направлен в интерпретатор Python в виртуальной среде, но на тот случай, если это еще не сделано, перейдите в PyCharm → Preferences, и убедитесь в том, что у вас заданы настройки, указанные ниже.

Подготовьте сервер к работе

Следующим шагом является настройка конфигурации запуска / отладки. Для этого перейдите в Run → Edit Configurations.

Подготовьте сервер к работе - 2

Нажмите «+», чтобы создать новую конфигурацию Python, и установите Script Path и Parameters, чтобы он запускал сервер.

Мы готовы к запуску

Все настроено, теперь нажмите кнопку «Play», чтобы запустить приложение. В консоли вы увидите сообщение о том, что сервер разработки запущен.

Мы готовы к запуску

Если вы перейдете по ссылке, то увидите, как взлетает ракета. Наслаждайтесь тем, чего вы достигли.

Мы готовы к запуску - 2

Заключение

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

Вадим Дворниковавтор-переводчик статьи «Creating My First Web App with Django»

Пожалуйста, опубликуйте свои комментарии по текущей теме материала. За комментарии, подписки, дизлайки, лайки, отклики огромное вам спасибо!