Краткий обзор веб-разработки на Python

Введение С 2003 года Python входит в десятку лучших языков программирования для изучения, и с тех пор его рейтинг постоянно улучшается. Согласно статистике [https://www.codingame.com/blog/best-programming-language-learn-2019/], Python входит в пятерку лучших языков для изучения в 2019 году и стал неотъемлемой частью программирования. community, благодаря его простоте, гибкости, надежности, простоте использования, совместимости, скорости и универсальности. Кроме того, технологические гиганты, такие как Insta

Вступление

С 2003 года Python входит в десятку лучших языков программирования для изучения, и с тех пор его рейтинг постоянно улучшается. Согласно статистике , Python входит в пятерку лучших языков для изучения в 2019 году и стал важной частью сообщества программистов благодаря своей простоте, гибкости, надежности, простоте использования, совместимости, скорости и универсальности. Кроме того, технологические гиганты, такие как Instagram, Spotify и Google, по крайней мере частично используют свою архитектуру на Python.

Короче говоря, Python стал центральной фигурой в мире программирования и бизнеса с появлением Кремниевой долины и плаката на Уолл-стрит: Fintech . Причин много , но Python предлагает безопасность и масштабируемость, к которым стремится тенденция перехода к цифровым технологиям в значительной степени в деловом и финансовом секторах.

Хотя Python можно использовать для выполнения множества задач, от машинного обучения и анализа данных до робототехники и программирования оборудования, в этой статье мы изучим, как Python можно использовать для веб-разработки.

Веб-разработка с использованием Python

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

Но как узнать, какой веб-фреймворк вам подходит? Для полноценных веб-приложений лучше всего подойдут Django и Pyramid . Для лучшего контроля и визуализации или создания прототипа приложения у Web2py или Flask может быть что предложить вашему проекту. CheeryPy необходим для простых, минималистичных решений. Tornado будет обрабатывать 10 000 или более одновременных подключений к вашему приложению одновременно, в то время как Dash - идеальный выбор для аналитических приложений.

В этой статье мы дадим краткий обзор трех самых популярных вариантов, выбранных разработчиками и компаниями-программистами: Django, Pyramid и Flask. После обзора мы покажем самый популярный фреймворк, Django, в действии на примере системы входа в систему.

Джанго

Этот фреймворк является воплощением фразы «батарейки включены». Определяется как «веб-фреймворк для перфекционистов с установленными сроками». Его встроенные функции позволяют использовать широкий спектр веб-приложений, таких как приложения баз данных, чат-боты, решения GPS и т. Д.

Философия DRY (Don't Repeat Yourself) не только позволяет, но и способствует повторному использованию кода, сокращая время кодирования вдвое. Кроме того, его модульная / несвязанная архитектура позволяет плавно изменять компоненты кода, позволяя добавлять или удалять компоненты в любом количестве с минимальными усилиями или без них.

Django также обладает так называемым ORM (объектно-реляционное сопоставление), что делает его не только хорошо совместимым с большинством популярных баз данных, таких как SQL или Oracle, но и позволяет ему работать с несколькими базами данных одновременно.

Наконец, Django оптимизирован для SEO (поисковой оптимизации). Например, это позволяет сократить время загрузки страницы с помощью таких методов / функций, как кэширование шаблонов и сжатие JavaScript.

Пирамида

Эта структура определяет себя как «не слишком маленькая, не слишком большая, в самый раз». Pyramid - это фреймворк, ориентированный на завершение, с возможностью начинать с малого, позволяя вам создать прочную основу для вашего решения, а затем масштабировать его по мере необходимости. Он похож на Django по совместимости с небольшими и большими приложениями, но отличается от Django своей сложностью.

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

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

Колба

В то время как Pyramid и Django разделяют одну и ту же основную философию, Flask идет в другом направлении. Если конечная цель - это что-то простое, управляемое и настраиваемое, я бы посоветовал вам всегда использовать Flask вместо того, чтобы использовать чрезмерную мощь, такую как Django. Flask в значительной степени основан на шаблонах Jinja 2 и наборе инструментов Werkzeug WSGI (интерфейс шлюза веб-сервера).

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

Простая система входа с Django

В этом разделе мы собираемся объяснить, как создать простую систему входа в систему с помощью фреймворка Django. Хотя многие вещи происходят «за кулисами», и многие вещи можно настроить по желанию разработчиков, будут объяснены только самые основные шаги, чтобы продемонстрировать, насколько легко разрабатывать приложения с помощью фреймворка Django.

Установка Django

В этом примере необходимо установить модуль PIP. После этого можно установить Django и создать новый проект следующим образом:

 $ python3 -m venv ~/.virtualenvs/dProject # Creates a virtual enviroment named dProject 
 $ source ~/.virtualenvs/dProject/bin/activate # A path is created 
 (dProject) $ pip install django # Django is installed 
 (dProject) $ django-admin.py startproject LoginProject_D # The project is created with the name LoginProject_D 
 (dProject) $ ./manage.py migrate # Migrate creates a new SQLite database 
 (dProject) $ ./manage.py runserver # Calls the local server 
 (dProject) $ ./manage.py startapp dProject # This creates a dedicated app that will allow the making of a view and url registration. 

После этого проект можно предварительно просмотреть в браузере по адресу «http://127.0.0.1:8000». В браузере загрузится экран приветствия Django, свидетельствующий об успешной установке.

Приложение Django Auth

При создании проекта Django по умолчанию устанавливает приложение «auth». Это можно подтвердить, проверив файл «settings.py», который создается автоматически с новым проектом, в разделе «INSTALLED_APPS» следующим образом:

 INSTALLED_APPS = [ 
 … 
 'django.contrib.admin', 
 'django.contrib.auth', # Here it is! Note that several built-in apps are included in this section. 
 … 
 ] 

«Django-auth» или «django.contrib.auth» - это встроенная система аутентификации фреймворка Django, содержащая ее модели по умолчанию.

Чтобы использовать приложение «auth», нам нужно добавить его в файл уровня проекта «urls.py»:

 # Importing this module will allow us to set the routes login and logout views 
 from django.conf.urls import url 
 from django.contrib import admin 
 from django.contrib.auth import views as auth_views 
 
 # This section adds Django site authentication urls (for login, logout, password management) 
 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')), 
 ] 

Приложение «auth» предоставляет нам следующие 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 с шаблоном "login.html" внутри. Следующий блок кода представляет собой базовый шаблон входа в систему, который можно использовать:

 {% extends 'base.html' %} 
 
 {% block title %}Login{% endblock %} 
 
 {% block content %} 
 <h2>Login</h2> 
 <form method="post"> #This is a standard form to send data. 
 {% csrf_token %} #Security tag to prevent <a target="_blank" href="https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)">XSS Attacks</a>, among other concerns. 
 {{ form.as_p }} #Ouputs the form's contents between paragraph tags. 
 <button type="submit">Login</button> #A submit button. 
 </form> 
 {% endblock %} 

Наконец, мы настроили проект на поиск папки "templates" через файл "settings.py", обновив DIRS :

 TEMPLATES = [ 
 { 
 ... 
 'DIRS': [os.path.join(BASE_DIR, 'templates')], 
 ... 
 }, 
 ] 

Вуаля! Простая страница входа в систему, которая может правильно аутентифицировать пользователя с помощью проверки имени пользователя и пароля.

Заключение

Python широко используется для программирования на стороне сервера из-за его возможностей динамического создания веб-сайтов. Этот язык широко используется для быстрого создания прототипов и создания высокомасштабируемых веб-приложений такими технологическими лидерами, как Google и даже NASA!

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

Кроме того, эти среды Python сокращают усилия по разработке за счет предоставления множества встроенных функций. Единственная проблема будет заключаться в том, какой из них использовать, адаптированный к конкретным потребностям для достижения лучших результатов.

comments powered by Disqus