11 новых веб-фреймворков Python, которые могут стать популярными

Python – язык программирования, который довольно широко используется для создания веб-сервисов. С его помощью создавались программы, которыми сейчас пользуются миллионы людей. Скорее всего, вы уже создавали программы с помощью каких-то фреймворков для создания веб-приложений: Django, Flask, Falcon, Tornado, CherryPy. Но время не стоит на месте. За несколько последних лет появилось довольно большое количество интересных веб-фреймворков. В них не только используется свежий подход к решению проблем, но и они позволяют добиться значительно большей производительности. 

Sanic

Этот инструмент одновременно позиционируется и как сервер, и как фреймворк для быстрого запуска приложения. Он задействует синтаксис async/await, который был добавлен в Python 3.5. Именно поэтому код, созданный с его помощью, работает быстро и без особых багов.

Также есть два необязательных пакета, которые используются для решения проблем с производительностью: uvloop, ujson.

Что нужно сделать для установки Sanic? Всего лишь ввести одну команду.

pip install sanic

А вот пример приложения «Hello World», созданного с помощью этого фреймворка. 

from sanic import Sanic

from sanic.response import json

 

app = Sanic()

 

@app.route('/')

async def test(request):

    return json({'hello': 'world'})

 

if __name__ == '__main__':

    app.run(host='0.0.0.0', port=8000)

Starlette

Это простой фреймворк, который может использоваться для создания сервисов asyncio, которые будут характеризоваться высокой производительностью. Он может использоваться как в качестве самостоятельного фреймворка, так и инструментария ASGI. Поставляется в комплекте с большим набором инструментов, им поддерживается WebSockets, GraphQL, внутрипроцессоровые фоновые задачи, а также текстовый клиент, основанный на Requests Python.

Чтобы установить фреймворк, используется следующая команда.

pip install starlette

А вот пример приложения «Hello World», которое создано с помощью Starlette. 

from starlette.applications import Starlette

from starlette.responses import JSONResponse

import uvicorn

 

app = Starlette(debug=True)

 

 

@app.route('/')

async def homepage(request):

    return JSONResponse({'hello': 'world'})

 

if __name__ == '__main__':

    uvicorn.run(app, host='0.0.0.0', port=8000)

Masonite

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

Преимущество Masonite в удобном механизме маршрутизации, который работает без дополнительных действий. Также людям нравится его стиль Active Record ORM, который называется Orator. 

Чтобы установить Masonite, необходимо ввести следующую команду.

pip install masonite-cli

FastAPI

Это современный фреймворк для создания веб-приложений, который основан на Python 3.6+. В его основе лежит Starlette, и этот фреймворк является одним из самых быстрых на данный момент.

Он основывается на OpenAPI (Swagger – его прошлое название) и JSON Schema.

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

pip install fastapi

А вот пример приложения Hello World, созданного на основе FastAPI. 

from fastapi import FastAPI

 

app = FastAPI()

 

 

@app.get("/")

def read_root():

    return {"Hello": "World"}

Responder

Responder – это фреймворк, который также базируется на Starlette. При его создании ставилась задача совместить лучший функционал Flask и Falcon в одном фреймворке. 

Он содержит встроенный статический сервер для продакшена, автоматические gzip-ответы, нативную поддержку GraphQL, а также встроенный клиент для тестов, который задействует модуль Requests.

Установка Responder производится следующим образом. Введите в терминал следующую команду.

pip install responder

А вот пример приложения «Hello World», которое создано на основе Responder. 

import responder

 

api = responder.API()

 

@api.route("/{greeting}")

async def greet_world(req, resp, *, greeting):

    resp.text = f"{greeting}, world!"

 

if __name__ == '__main__':

    api.run()

Molten

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

Molten поддерживаются промежуточные программы благодаря функция и зависимостям. Также сюда входит пакет molten.contrib, в который входят разнообразные функциональные возможности, которые, как правило, требуются API.

Что может быть: Например, файлы конфигурации, метрики Prometheus, ID-запросы, сессии.

Molten устанавливается таким образом.

pip install molten

А вот пример приложения Hello World, которое создается с использованием Molten

from molten import App, Route

 

def hello(name: str) -> str:

    return f"Hello {name}!"

 

app = App(routes=[Route("/hello/{name}", hello)])

Japronto

Japtonto – это быстрый инструмент, который базируется на picohttpparser. К его положительным сторонам относится скорость, масштабируемость, асинхронность. Он может использоваться в Python 3.5 и старше.

Кому он может быть полезным? Прежде всего, тем людям, которым важна скорость, внимательность к деталям и новые разработки.

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

Как устанавливать Japronto? Для этого нужно ввести следующую команду.

pip install japronto

А вот пример приложения, которое создается с использованием этого фреймворка. 

from japronto import Application

 

def hello(request):

    return request.Response(text='Hello world!')

 

app = Application()

app.router.add_route('/', hello)

app.run(debug=True)

Klein

Klein – это небольшой фреймворк, предназначенный для создания веб-приложений на Python. Его особенность в том, что API минималистичный. В этом плане инструмент напоминает Bottle и Flask. 

Следует отметить, что он зависим от дополнительного инструментария за пределами стандартной библиотеки. Все потому, что Klein создан на широко используемых и хорошо протестированных компонентах, таких как Werkzeug и Twisted. То есть, несмотря на то, что это кажется недостатком на первый взгляд, на самом деле, это преимущество данного фреймворка.

Чтобы установить Klein с помощью PIP, нужно ввести следующую команду.

pip install klein

А вот пример приложения Hello World, созданного на основе Klein. 

from klein import run, route

 

@route('/')

def home(request):

    return 'Hello, world!'

 

run("localhost", 8080)

Quart

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

Благодаря чему это становится возможным? Прежде всего, за счет того, что Quart является набором для API Flask. Среди протоколов, поддерживаемых Quart, можно назвать HTTP/1.1, HTTP/2, а также вебсокеты.

Чтобы установить Quart, необходимо ввести следующую строку.

pip install quart

А вот пример приложения, созданного с помощью Quart. 

rom quart import Quart, websocket

 

app = Quart(__name__)

 

@app.route('/')

async def hello():

    return 'hello'

 

@app.websocket('/ws')

async def ws():

    while True:

        await websocket.send('hello')

 

app.run()

BlackSheep

BlackSheep – это типичный пример асинхронного фреймворка для разработки в интернете, который не блокируется и в основе которого находятся события. При его создании разработчики вдохновлялись Flask и ASP.NET Core.

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

Чтобы установить фреймворк, используется следующая строка кода:

pip install blacksheep

А вот пример программы, разработанной с использованием BlackSheep. По функционалу она стандартная: выводит строку «Hello World», точно так же, как и все приведенные ранее примеры. 

from datetime import datetime

from blacksheep.server import Application

from blacksheep.server.responses import text

 

app = Application()

 

@app.route('/')

async def home(request):

    return text(f'Hello, World! {datetime.utcnow().isoformat()}')

Cyclone

Cyclone – это фреймворк для разработки приложений в интернете, задействующий Tornado API в форме Twisted-протокола. Фреймворк создавался для соединения Twisted и Tornado API, что дает возможность использовать множество протоколов.

Такая комбинация гарантирует основу для создания гибридных серверов, которые могут невероятно быстро выполнять обработку HTTP-запросов, а также параллельно с этим использовать электронную почту, ssh, sip, irc, причем в один момент времени.

Чтобы установить этот фреймворк, необходимо, так же, как и в случае с предыдущими, использовать pip.

pip install cyclone

Выводы

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

ОфисГуру
Adblock
detector