Рабочая лошадка: почему в веб-разработке нечего делать без Python?
Удивительно, но факт — в 1999 году Python занимал абсолютно неразличимое место среди других языков программирования. Балом правил С++, за которым следовали Java и Perl. В новом тысячелетии Python стал динамично набирать популярность, на его основе заработали крупнейшие мировые сервисы: Facebook, Reddit, Amazon, не говоря уже о Google. Сегодня веб-разработчики, которые планируют свою карьеру на пять-десять лет вперёд, ставят владение Python на первые позиции. Мы, команда онлайн-школы SkillFactory, решили разобраться в предпосылках этого явления. Тем более, что совсем скоро у нас стартует целый курс по веб-разработке именно на Python. Итак, приступим.
Язык для человека
Главное преимущество Python, привлекающее к нему рекордное число новых программистов, — простота и прозрачность синтаксиса. Это один из первых языков, созданный специально для удобства восприятия человеком. Его код легко писать и читать, анализировать на ошибки и передавать коллегам для совместной работы. Создатели Python позаботились и о том, чтобы программы не «ломались» от малозначительных багов, что позволяет разработчику отловить их в процессе отладки.
В результате Python стал лучшим «первым языком» для разработчиков-новичков. Учёба идет гораздо проще, когда вы можете быстро применить новые знания в деле, а теорию усваиваете параллельно, чётко понимая, как она соотносится с практическими задачами.
Простота обучения программированию на Python вовсе не означает функциональную бедность. Наши слушатели через год занятий справляются с типовыми задачами вроде запуска интернет-витрины или создания Telegram-ботов. Чем глубже специалист погружается в Python, тем больше становится его технический багаж: используемые библиотеки, функциональные модули, практики работы с данными. Это обеспечивает программисту быстрый рост на базе тех знаний, которые он получает на первых уроках.
Путь к иным наречиям
Эксперты с несколькими языками в активе знают, что Python позволяет решать те же задачи с меньшим количеством кода. Возможность создавать элегантные продукты с понятной, красивой архитектурой — вот ещё одна причина популярности этой экосистемы.
С другой стороны, обучение программированию на Python упрощает путь к другим платформам. Оно позволяет понять механику скриптов и парсинга данных, разобраться в устройстве веб-порталов, познакомиться с принципами интеграции информационных систем. На этом фундаменте в дальнейшем можно возводить какие угодно стены.
Нельзя не вспомнить многочисленные реализации Python на различных языках программирования, среди которых
- CPython — версия для работы с C.
- Jython — интеграция с Java.
- IronPython — обеспечивает совместимость с .NET и C#.
- RubyPython — комбинирует Python с Ruby.
Трамплин для роста
Во многом взрывная популярность Python связана с тем, как он помогает с решением наиболее актуальных задач программирования. Большие данные, машинное обучение, интернет вещей — во всех этих отраслях Python-разработчики составляют основную экспертную базу.
В результате таких специалистов ищут как крупнейшие технологические корпорации, так и перспективные стартапы, которые, как помнят зрители Silicon Valley, стремятся «сделать мир лучшим местом». Что немаловажно, Python отлично справляется с растущими нагрузками, обеспечивая локальному проекту возможность расти до мирового масштаба. А удобный и быстрый кодинг помогает держать под контролем расходы на разработку — эта задача актуальна всегда и везде.
Глобальное сообщество разработчиков постоянно создает новые библиотеки и фреймворки, направленные на автоматизацию самых разных процессов. Так Python и получил свою функциональную гибкость: при необходимости вы можете найти модули, которые прямо из коробки решают даже узконаправленные задачи. По богатству этих дополнений Python обгоняет ещё одного фаворита веб-разработчиков — PHP, на котором работает подавляющее большинство интернет-сайтов.
Чтобы вы могли представить себе возможности этих фреймворков и заодно убедились в простоте программирования на Python, в завершающей части мы покажем, как развернуть систему онлайн-авторизации на базе одной из самых популярных библиотек Python, Django. Подобные практические модули составляют базу нашего курса по веб-разработке на Python.
От слов к делу
Дальнейшая часть статьи исключительно ознакомительная демонстрирующая просту работы с python и не является прямым руководством к действию.
Мы подразумеваем что у вас установлен модуль pip. Начнем с установки и настройки Django:
# Создадим виртуальную среду dProject $ python3 -mvenv~/.virtualenvs/dProject $ source ~/.virtualenvs/dProject/bin/activate # Создает путь (dProject) $ pip install django # Устанавливим Django # Создадим проект под названием LoginProject_D (dProject) $ django-admin.py startproject LoginProject_D # Создает новую базу SQLite (dProject) $ ./manage.py migrate # Стар локального сервера (dProject) $ ./manage.py runserver # Далее создадим выделенное приложение для дальнейшей работы над регистрацией (dProject) $ ./manage.py startapp dProject
Теперь вы можете просмотреть свой проект по адресу http://127.0.0.1:8000
При создании проекта Djangо автоматически устанавливает приложение auth. Это встроенный модуль аутентификации, который есть во всех базовых версиях фреймворка. Чтобы проверить его установку, обратимся к файлу settings.py в секции INSTALLED_APPS:
INSTALLED_APPS = [ … 'django.contrib.admin', 'django.contrib.auth', # Вот искомое приложение, а выше — ещё одно, которое также было запущено автоматически. … ]
Чтобы работать с auth, добавим его в файл urls.py. После этого мы сможем устанавливать пути для форм login and logout.
from django.conf.urls import url from django.contrib import admin from django.contrib.auth import views as auth_views # Здесь мы добавляем аутентификационные URL для авторизации, деавторизации и управления паролем. urlpatterns = [ url(r'^login/$', auth_views.login, name='login'), url(r'^logout/$', auth_views.logout, name='logout'), url(r'^admin/', admin.site.urls), path('dProject/', include('django.contrib.auth.urls')), ]
С помощью последней строки мы получим целый список доступных URL с соответствующими формами auth:
dProject/login/ [name='login'] dProject/logout/ [name='logout'] dProject/password_change/ [name='password_change'] dProject/password_change/done/ [name='password_change_done'] dProject/password_reset/ [name='password_reset'] dProject/password_reset/done/ [name='password_reset_done'] dProject/reset/<uidb64>/<token>/ [name='password_reset_confirm'] dProject/reset/done/ [name='password_reset_complete']
Представление django.contrib.auth.views.login содержит обращение к шаблону registration/login.html. Он хранится в папке registration. Следующий код позволяет работать со страницей:
{% extends 'base.html' %} {% block title %}Login{% endblock %} {% block content %} <h2>Login</h2> <formmethod="post"> #Стандартная форма для отправки данных. {% csrf_token%} #Тег безопасности для предотвращения XSS-атак и других угроз. {{ form.as_p}} #Выводит содержимое формы. <button type="submit">Login</button> #Кнопка отправки. </form> {% endblock%}
Наконец, устанавливаем в файле settings.py путь к рабочим шаблонам:
TEMPLATES = [ { ... 'DIRS': [os.path.join(BASE_DIR, 'templates')], ... }, ]
Готово — страница авторизации в рабочем состоянии, все необходимые модули, включая средства безопасности, на месте.