Другие

Рабочая лошадка: почему в веб-разработке нечего делать без Python?

Spread the love

Удивительно, но факт — в 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')],
        ...
    },
]

Готово — страница авторизации в рабочем состоянии, все необходимые модули, включая средства безопасности, на месте.

Была ли вам полезна эта статья?
[0 / 0]

Spread the love
Editorial Team

Recent Posts

Vue 3.4 Новая механика v-model компонента

Краткий перевод: https://vuejs.org/guide/components/v-model.html Основное использование​ v-model используется для реализации двусторонней привязки в компоненте. Начиная с Vue…

12 месяцев ago

Анонс Vue 3.4

Сегодня мы рады объявить о выпуске Vue 3.4 «🏀 Slam Dunk»! Этот выпуск включает в…

12 месяцев ago

Как принудительно пере-отобразить (re-render) компонент Vue

Vue.js — это универсальный и адаптируемый фреймворк. Благодаря своей отличительной архитектуре и системе реактивности Vue…

2 года ago

Проблемы с установкой сертификата на nginix

Недавно, у меня истек сертификат и пришлось заказывать новый и затем устанавливать на хостинг с…

2 года ago

Введение в JavaScript Temporal API

Каким бы ни было ваше мнение о JavaScript, но всем известно, что работа с датами…

2 года ago

Когда и как выбирать между медиа запросами и контейнерными запросами

Все, кто следит за последними событиями в мире адаптивного дизайна, согласятся, что введение контейнерных запросов…

2 года ago