Sanic - это веб-сервер и веб-фреймворк Python 3.6+, написанные для быстрой работы. Он позволяет использовать синтаксис async/await, добавленный в Python 3.5, что делает ваш код неблокирующим и быстрым.
2 ответа

Sanic (веб-сервер asyncio + uvloop) - возвращает пользовательский ответ

Я начинаю с Саника... Sanic - это похожий на Flask веб-сервер Python 3.5+, созданный для быстрой работы. (...) Sanic поддерживает обработчики асинхронных запросов. Это означает, что вы можете использовать новый блестящий синтаксис async/await из Pyt…
14 дек '16 в 15:29
2 ответа

Как изменить каталог Sanic Log по умолчанию на пользовательский каталог?

Sanic в настоящее время поддерживает каталог журналов Linux как /dev/log, и журнал не будет работать, если каталог не существует. Как мне изменить каталог на пользовательский?
14 мар '18 в 05:59
1 ответ

sanic: как преобразовать контент уценки асинхронно

У меня есть следующий маршрут Sanic: md = Markdown() @app.route('/md_file') async def md_file(request): async with aiofiles.open('./file.md')) as f: content = await f.read() content = md.convert(content) return html(content) Это работает просто отли…
22 июл '17 в 10:14
1 ответ

Я получил ошибку [TypeError: объект "coroutine" не повторяется], когда я использовал sanic и aiohttp

Я построил небольшой веб-сервер с Sanic, это одно из представлений: @app.route("/query_video/", methods=["GET"]) async def video_query_views(request: Request): keyword = request.args.get("keyword", None) page = request.args.get("page", None) order =…
28 янв '18 в 13:45
1 ответ

RuntimeError: этот цикл событий уже запущен

Я пытаюсь запустить асинхронную загрузку стороннего файла, используя следующий код в sanic def up(self,request): import asyncio import aiohttp header = { 'Authorization': 'Client-ID {}'.format(self.client_id) } data = { 'image': open("/home/jibin/Do…
07 дек '18 в 04:24
3 ответа

Как использовать aiohttp ClientSession pool?

Документы говорят, чтобы повторно использовать ClientSession: Не создавайте сеанс для каждого запроса. Скорее всего, вам нужен сеанс для приложения, который выполняет все запросы в целом. Сеанс содержит пул соединений внутри, повторное использование…
28 окт '17 в 15:49
0 ответов

Образ докера с Sanic поверх альпийского: последний (3.9) использует Python JSON вместо UJSON

Dockerfile: FROM alpine:latest RUN apk add --no-cache python3 \ && python3 -m ensurepip \ && rm -r /usr/lib/python*/ensurepip \ && pip3 install -U pip setuptools ez_setup \ && rm -r /root/.cache/* \ && apk add…
12 фев '19 в 12:11
0 ответов

Каков предпочтительный способ вызова синхронного кода из асинхронных маршрутов в Sanic?

Я исследую Sanic, поскольку мы ищем альтернативы нашим услугам отдыха на колбах. Я заинтригован асинхронной природой sanic, но я знаю, что мы столкнемся с большим количеством кода, который просто не будет поддерживать асинхронность (мы используем то…
04 дек '18 в 18:31
1 ответ

Нужен ли Gunicorn для внутренних асинхронных микросервисов?

Насколько я читаю по всему Интернету, лучшая практика для развертывания приложений Flask/Django - это оставить позади веб-сервер, такой как nginx, и связать их с предварительно подготовленным сервером, таким как gunicorn или uWSGI. Это хорошо по мно…
27 фев '19 в 06:22
2 ответа

(sanic)[ОШИБКА]: соединение потеряно до написания ответа

Я использую Sanic (Python) в качестве веб-сервера и столкнулся с проблемой некоторых запросов. Это возвращает ошибку, когда мы получаем довольно много одновременных запросов. Описание ошибки приведено ниже: web_1 | 2017-10-03 09:24:49 - (network)[IN…
03 окт '17 в 09:32
1 ответ

Python Asyncio How to itertools.cycle с более чем 1 запросом одновременно

Я использую Sanic, мы используем прокси-сервер для создания внешних подключений для удаления из Интернета. Я хочу создать python dict и поместить список прокси внутри python dict. В рамках этого условия мы будем хранить такие значения, как 0, 1, 1 =…
12 июл '18 в 10:04
1 ответ

sanic - Как указать требуемый JSON?

Я хотел бы указать необходимый JSON для контроллера get/post методы для того, чтобы это показать в SwaggerUI. Например, я хочу request.json выглядеть так: { 'key1': <int>, 'key2': <string> } Я инициализирую SwaggerUI следующим образом: f…
10 фев '18 в 11:56
1 ответ

AttributeError, когда я возвращаю класс

Я использую sanic для своего API и peewe как ORM. и я хочу создать помощник для ответа JSON, но я получил ошибку AttributeError: 'JsonResponse' object has no attribute 'all_records' get метод в контроллере from sanic.response import json from sanic.…
18 мар '17 в 14:07
1 ответ

Повторная ОШИБКА: NoneType в приложении Sanic

Я продолжаю получать Error: Nonetype из приложения Sanic, и я не могу определить причину. Мой код: from sanic import Sanic from sanic.response import json, text from sanic.request import RequestParameters from parse_data import ParseData pdata = Par…
13 май '17 в 10:57
1 ответ

Санитарный цикл событий и автобан

У меня есть проект, написанный с Sanic application = Sanic(__name__) ... application.run(host=application.config.HOST, port=application.config.PORT, debug=application.config.DEBUG, log_config=application.config.LOG) и мой сайт имеет раздел для опера…
03 дек '17 в 16:34
1 ответ

Неопределенный символ пытается запустить приложение Sanic в Python 3.5

Когда я пытаюсь запустить приложение Sanic с Python 3.5, я получаю следующую ошибку: Traceback (most recent call last): File "api.py", line 1, in <module> from sanic import Sanic File "/home/shiro/dev/unassociated/user-api/.venv/lib/python3.5/…
19 май '17 в 07:57
1 ответ

Как переписать обработчик веб-сокетов aiohttp в sanic?

У меня есть следующее websocket handler в моем проекте aiohttp: async def websocket_handler(request): ws = web.WebSocketResponse() await ws.prepare(request) request.app['websockets'].append(ws) async for msg in ws: if msg.type == aiohttp.WSMsgType.T…
20 сен '17 в 09:06
2 ответа

Обновление глобального дикта из нескольких потоков

У меня есть следующее приложение, которое запускает планировщик для периодического обновления состояния глобальной переменной (dict): from sanic import Sanic from sanic.response import text from apscheduler.schedulers.background import BackgroundSch…
19 фев '17 в 13:20
2 ответа

Конечная точка многоклиентного потокового Websocket (Python)

Недавно я попал в "криптоманию" и начал писать свои собственные обертки вокруг API на некоторых биржах. Binance, в частности, имеет конечную точку потокового веб-сокета. где вы можете передавать данные, но через конечную точку websocket. Я думал, чт…
20 янв '18 в 11:05
2 ответа

Как ждать 5 секунд (без блокировки) перед отправкой ответа?

Это кажется возможным, потому что в app.Sanic.handle_request() есть этот фрагмент: if isawaitable(response): response = await response А это как awaitable проверяется Python: def isawaitable(object): """Return true if object can be passed to an ``aw…
24 ноя '17 в 07:39