Зачем использовать async для роутов в api?
Яркий пример - https://fastapi.tiangolo.com/tutorial/first-steps/ Никак не могу понять в чем тут выгода? А так же в чем минус не использования async?
p.s markdown выключен(
Яркий пример - https://fastapi.tiangolo.com/tutorial/first-steps/ Никак не могу понять в чем тут выгода? А так же в чем минус не использования async?
p.s markdown выключен(
Использую https://github.com/tiangolo/fastapi для построения api и документации openapi (он умеет из коробки это делать и выводить в swagger ui) Есть роут с кодом:
@router.post('/auth')
def create_user(user: UserSchemas.UserBase, db: Session = Depends(get_db)):
# check user for waiting sms
user_waiting_sms = \
user_crud.get_user_sms_wait(db, number=user.number, is_active=False)
if user_waiting_sms is not None and user_waiting_sms.sms_id is not None:
# if we waiting sms
if user_waiting_sms.expire_sms > int(time()):
return {'status': 1, 'msg': 'Wait for sms code'}
else:
user_crud.reset_expire_sms(db, number=user.number)
r = alphasms(user.number, 'test1', 'privet test1')
if 'id' in r:
user_crud.update_user_sms_expire(
db, number=user.number, sms_id=r['id'], expire_sms=(int(time())+300))
return {'status': 2, 'msg': 'Sms code is resend'}
else:
raise HTTPException(status_code=202, detail="Error send message")
есть приложение:
app:
models:
User.py - это модель
Other.py - тоже модель
# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
target_metadata = None
alembic revision --autogenerate
p.s. использую для генерации alembic и sqlalchemy (sqlite)
есть простое приложение на fastapi с одним запросом:
app = FastAPI()
@app.get("/check/{host}/{user}/{password}")
def read_item(host: str, user: str, password: str):
if host.split(':') is None:
return False
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host.split(':')[0], int(host.split(':')[1])))
except socket.error as e:
return {'result':'down'}
finally:
s.shutdown(socket.SHUT_RDWR)
s.close()
c = PyFreeRDP(host, user, password)
return {'result': c.connect()}
Собственно freerdp никаким образом не хочет компилится под арчем
[ 0%] Built target winpr-asn1
[ 1%] Built target winpr-handle
[ 3%] Built target winpr-thread
[ 5%] Built target winpr-crt
[ 6%] Built target winpr-interlocked
[ 10%] Built target winpr-synch
[ 10%] Built target winpr-sysinfo
[ 16%] Built target winpr-utils
[ 17%] Built target winpr-bcrypt
[ 17%] Built target winpr-credentials
[ 18%] Built target winpr-credui
[ 19%] Built target winpr-crypto
[ 20%] Built target winpr-dsparse
[ 20%] Built target winpr-environment
[ 21%] Built target winpr-error
[ 21%] Built target winpr-file
[ 21%] Built target winpr-heap
[ 22%] Built target winpr-input
[ 23%] Built target winpr-io
[ 23%] Built target winpr-library
[ 24%] Built target winpr-path
[ 25%] Built target winpr-pipe
[ 27%] Built target winpr-pool
[ 28%] Built target winpr-registry
[ 32%] Built target winpr-rpc
[ 32%] Building C object winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/NTLM/ntlm_compute.c.o
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c: В функции «ntlm_compute_message_integrity_check»:
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:649:11: ошибка: размер «hmac_ctx» в памяти неизвестен
649 | HMAC_CTX hmac_ctx;
| ^~~~~~~~
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:656:2: предупреждение: неявная декларация функции «HMAC_CTX_init»; имелось в виду «HMAC_CTX_new»? [-Wimplicit-function-declaration]
656 | HMAC_CTX_init(&hmac_ctx);
| ^~~~~~~~~~~~~
| HMAC_CTX_new
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:662:2: предупреждение: неявная декларация функции «HMAC_CTX_cleanup» [-Wimplicit-function-declaration]
662 | HMAC_CTX_cleanup(&hmac_ctx);
| ^~~~~~~~~~~~~~~~
/home/cr33per/Tools/py-freerdp/sub_modules/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c:649:11: предупреждение: неиспользуемая переменная «hmac_ctx» [-Wunused-variable]
649 | HMAC_CTX hmac_ctx;
| ^~~~~~~~
make[2]: *** [winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/build.make:76: winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/NTLM/ntlm_compute.c.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:1230: winpr/libwinpr/sspi/CMakeFiles/winpr-sspi.dir/all] Ошибка 2
make: *** [Makefile:152: all] Ошибка 2
ОС: Manjaro [Gnome 3]
Graphic: RTX 2080TI
сделал фото с телефона, так как на скриншоте искажения нет- https://i.imgur.com/lcYaEez.jpg
Драйвер несвободный.
В чем может быть проблема?
Пишу приложение с использованием flask и flask-restful.
Вот тестовый ресурс приложения с методом put: https://p.teknik.io/qhrtq
Как мне перед этим методом можно использовать декоратор before_request который вызывается из контекста (app, к примеру @app.before_request)?
структура файлов https://u.teknik.io/ICGic.png
run.py - https://p.teknik.io/ZGYG2
app.py - https://p.teknik.io/AXNmZ
Есть функция которая возвращает список файлов из диры:
return [f for f in listdir(path) if isfile(join(path, f))]
Если злоумышленник залил php шелл (или любой другой) в директорию ресурса и имеет там практически полные права (пользователя), есть соседний ресурс на сервере к которому прав не имеет, есть ли вероятность того, что он все же получит доступ к другим ресурсам?
у эпол есть такая «замечательная» дока по их апи, вот этот класс - https://developer.apple.com/documentation/mediaplayer/mpmusicplayercontroller отвечает за проигрывание медиа в ОС (ios), то есть, я могу получить название трека который играет к примеру с google music, либо apple music и т.д.
Все хорошо, но, есть ли возможность получать название или индетификатор плеера который в данный момент проигрывает что либо ? в их апи я ничего такого не нашел, быть может кто из кодеров swift подскажет, либу какую нибудь или еще что то ?
собственно есть скрипт на python3 и требуется его пускать с помощью nohup, вопрос в том как активировать правильно env в таких условиях?
Пилю бота для воспроизведения 30 гб треков на сервере, по команде + начало пригрывания, - стоп, skip следующий. Тут все ясно, вопрос вот в чем, воспроизведение происходит следующим образом через либу :
# подключение
channel = message.author.voice.channel
voice = await channel.connect()
# воспроизведение
voice.play(discord.FFmpegPCMAudio('test.mp3'))
в micro, vim и прочих редакторах пытаюсь поставить таб вместо пробелов, визуально он ставиться, стоит открыть через sublime text, к примеру, там будут 4 пробела, пробовал так же на дефолтных конфигах bash и zsh.
Куда копать? Manjaro last
Начал юзать https://micro-editor.github.io/ и столкнулся с проблемой, в файле .py ставлю таб где он требуется, но в итоге получаю ошибку:
IndentationError: unindent does not match any outer indentation level
Собственно на винде известная ошибка в списке устройств - code 10, линукс не видит вообще ни модуля ни чего остального в общем.
Разве есть вероятность того что модуль отъехал просто из-за попытки установки дистра??? Причем интересный факт, сначала при установке все отлично было, потом я уже перезагрузился и понял что не так как нужно было поставил ОС, ребутнулся и понял что все... мать только купил - gigabyte z390 aorus ultra
делаю
chsh -s $(which zsh)
по сабжу есть что то годное и компактное на бт? По габаритам что то такое - https://i.citrus.ua/imgcache/size_800/uploads/shop/e/4/e4a54aaf283b3662b4af64...
Есть файл где есть 700 строк, каждую их них нужно обработать ruby бинарником пр. ./app_bin --arg <строка их файла>
Не могу сообразить каким образом я могу запускать по 5 таких задач, ждать завершения обработки и запускать следующие 5.
Есть более менее приятные решения?
Есть хорошая тулза https://github.com/foozzi/OpenDoor, интересует возможность собрать это в бинарник (конечно, конфиги и .dat файла отдельно)
Собирал много раз бинарники, но вот никогда не сталкивался с вот в таком виде апами.
Может быть есть какой либо пример или в 2х словах теория?
Давно не юзал кеды, собрал пк, поставил арч с кедами, хотел забиндить alt+shift, но это оказалось невозможным) собственно вопрос, реально ли это ? когда то прописывал в конфигах иксов бинды, но не помню уже нифига
← назад | следующие → |