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

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2019-11-20 16:07

разработка по

Python считается одним из самых популярных языков для создания веб-сервисов. За его плечами как скорые, небрежные RESTful API, так и полноценные веб-приложения, обслуживающие миллионы пользователей. Работающие в данной сфере наверняка уже использовали некоторые популярные фреймворки для создания сайта — Django, Flask, Falcon, Tornado или CherryPy.

Содержание

  • Sanic
  • Starlette
  • Masonite
  • FastAPI
  • Responder
  • Molten
  • Japronto
  • Python Klein
  • Quart
  • BlackSheep
  • Cyclone

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

Sanic Python Framework

Веб-фреймворк Python Sanic

Sanic позиционирует себя как веб-сервер и веб-фреймворк, созданный для быстрого запуска. Он позволяет использовать синтаксис async/await, добавленный в Python 3.5. По этой причине код не блокируется и отличается скоростью выполнения. Sanic использует uvloop и ujson, когда нужно помочь с производительностью, однако данные пакеты являются опциональными.

Мы собрали ТОП Книг для Python программиста которые помогут быстро изучить язык программирования Python. Список книг: Книги по Python

Установка Sanic

Shell

1

pip install sanic

Пример Hello world на Sanic

Python

1

2

3

4

5

6

7

8

9

10

11

fromsanic importSanic

fromsanic.response importjson

app=Sanic()

@app.route('/')

async deftest(request):

returnjson({'hello':'world'})

if__name__=='__main__':

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

Sanic на GitHub »

Starlette Python Framework

Веб-фреймворк Python Starlette

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

Установка Starlette

Shell

1

pip install starlette

Пример Hello world на Starlette 

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

fromstarlette.applications importStarlette

fromstarlette.responses importJSONResponse

importuvicorn

app=Starlette(debug=True)

@app.route('/')

async defhomepage(request):

returnJSONResponse({'hello':'world'})

if__name__=='__main__':

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

Starlette на GitHub »

Masonite Python Framework

Веб-фреймворк Python Masonite

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

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

Установка Masonite

Shell

1

pip install masonite-cli

Masonite на GitHub »

Fastapi Python Framework

Веб-фреймворк Python FastAPI

FastAPI является современным, высокопроизводительным веб-фреймворком для создания API на Python 3.6+ основанный на подсказки типов Python. Создан поверх Starlette и является одним из самых быстрых и доступных фреймворков Python.

FastAPI базируется, а также является совместимым, с открытыми стандартами для API — OpenAPI (ранее известный как Swagger) и JSON Schema.

Установка FastAPI

Shell

1

pip install fastapi

Пример Hello world на FastAPI

Python

1

2

3

4

5

6

7

8

fromfastapi importFastAPI

app=FastAPI()

@app.get("/")

defread_root():

return{"Hello":"World"}

FastAPI на GitHub »

Responder Framework Python

Веб-фреймворк Python Responder

Responder также основан на Starlette. При создании Responder главной идеей было совместить лучшие аспекты Flask и Falcon внутри одного-единcтвенного фреймворка.

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

Установка Responder

Shell

1

pip install responder

Пример Hello world на Responder

Python

1

2

3

4

5

6

7

8

9

10

importresponder

api=responder.API()

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

async defgreet_world(req,resp,*,greeting):

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

if__name__=='__main__':

api.run()

Responder на GitHub »

Molten Python Framework

Веб-фреймворк Python Molten

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

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

Это могут быть файлы конфигурации, метрики Prometheus, ID запросоы, сессии, SQLAlchemy, шаблоны, вебсокеты и многое другое.

Установка Molten

Shell

1

pip install molten

Пример Hello world на Molten

Python

1

2

3

4

5

6

frommolten importApp,Route

defhello(name:str)->str:

returnf"Hello {name}!"

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

Molten на GitHub »

Веб-фреймворк Python Japronto

Japronto является быстрым, масштабируемым, асинхронным HTTP инструментарием для Python 3.5+, интегрированным с конвейерным HTTP-сервером, базирующимся на uvloop и picohttpparser.

Он предназначен тех, кому важна скорость, внимательность к деталям и новые разработки. На данный момент нет особых новостей касательно разработки Japronto, однако о том, что проект заброшен, создатели также не сообщали.

Установка Japronto

Shell

1

pip install japronto

Пример Hello world на Japronto

Python

1

2

3

4

5

6

7

8

fromjapronto importApplication

defhello(request):

returnrequest.Response(text='Hello world!')

app=Application()

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

app.run(debug=True)

Japronto на GitHub »

Микро-фреймворк Python Klein

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

Причина в том, что Klein создан на широко используемых и хорошо протестированных компонентах, таких как Werkzeug и Twisted.

Установка Klein

Shell

1

pip install klein

Пример Hello world на Klein

Python

1

2

3

4

5

6

7

fromklein importrun,route

@route('/')

defhome(request):

return'Hello, world!'

run("localhost",8080)

Klein на GitHub »

Quart Python Framework

Микро веб-фреймворк Python Quart

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

Это становится возможным, благодаря тому, что Quart API является супер-набором для API Flask. Quart позиционирует себя в качестве полноценного веб-микрофреймворком. Он поддерживает HTTP/1.1, HTTP/2 и вебсокеты.

Установка Quart

Shell

1

pip install quart

Пример Hello world на Quart

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

rom quart importQuart,websocket

app=Quart(__name__)

@app.route('/')

async defhello():

return'hello'

@app.websocket('/ws')

async defws():

whileTrue:

await websocket.send('hello')

app.run()

Quart на GitHub »

BlackSheep Python Framework

Web-Framework Python BlackSheep

BlackShepp является асинхронным веб-фреймворком для создания веб-приложений Python, которые не блокируются и в основе которых лежат события. Вдохновлен Flask и ASP.NET Core.

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

Установка BlackSheep

Shell

1

pip install blacksheep

Пример Hello world на BlackSheep

Python

1

2

3

4

5

6

7

8

9

fromdatetimeimportdatetime

fromblacksheep.server importApplication

fromblacksheep.server.responses importtext

app=Application()

@app.route('/')

async defhome(request):

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

BlackSheep на GitHub »

Web-Framework Python Cyclone

Cyclone является веб-фреймворком, который реализует Tornado API в виде протокола Twisted. Идея в соединении элегантного и ясного Tornado API с циклами событий Twisted, что позволяет использовать огромное количество поддерживаемых протоколов.

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

Установка Cyclone

Shell

1

pip install cyclone

Cyclone на GitHub »


Источник: python-scripts.com

Комментарии: