Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569

Задание динамических моделей данных

29.09.2024, 23:25. Показов 720. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Pydantic предоставляет функцию create_model, позволяющую задавать модели на основе метапрограммирования. На основе этого я задал программно такие функции, например schemes.erate_datacls_generator. Не буду вдаваться в подробности, но мне нужно задавать так разные модели динамически в зависимости от заданного параметра (в данном случае у меня target_unit) из path в конечной точке.

Написал зависимость lastest_rate_model_response, которая бы брала параметр из path и возвращала модель, которая и нужна, вызывая в этой зависимости функцию erate_datacls_generator. Ругается же, что у меня вместо типа подставлен Depends для response_model.

Тогда как задать такую динамическую модель и зачем в pydantic тогда такая полезная функция create_model?

Если просто для конечной точки задавать зависимость от параметров path в dependencies, а для model_response вызывающуюся функцию, то жалуется, что не передан параметр target_unit. То есть, ни откуда параметр для model_response взяться не может в fast_api или я ошибаюсь?


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from fastapi import APIRouter, Depends, Path, status
 
from . import load_data, schemes
 
 
 
async def lastest_rate_path_params(target_unit: str=Path(...)):
    return {"target_unit": target_unit}
 
async def lastest_rate_model_response(target_unit: str=Path(...)):
    return schemes.erate_datacls_generator(target_unit=target_unit)
 
 
class Router:
 
    def __init__(self):
        self.router = APIRouter()
        self.setup_routes()
 
    def setup_routes(self):
        
        @self.router.get(
            "/latest/{target_unit}", 
            description="",
            status_code=status.HTTP_200_OK, 
            response_model=Depends(lastest_rate_model_response)
        )
        async def get_lastest_rate():
            return load_data.get_rate_api_data()
        
 
weatherapi = Router()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2024, 23:25
Ответы с готовыми решениями:

Вывод данных из моделей
У меня есть две таблицы. Нужно вывести данные из Flower по id, которые совпадают с word_id в таблице User_Flower. Как осуществить поиск по...

Задание с использованием динамических массивов
Задан массив чисел. Поменять местами предпоследний элемент массива с элементом, номер которого задан. Определить в полученном массиве...

Задание с использованием динамических массивов
Задан массив чисел. Поменять местами предпоследний элемент массива с элементом, номер которого задан. Определить в полученном массиве...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2024, 23:25
Помогаю со студенческими работами здесь

Как из динамических данных одной ячейки сформировать массив данных за период?
С Днём защитника отечества! Частично постановка задачи и её решение дано тут: https://www.cyberforum.ru/vba/thread220447.html По этим...

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

Отличие VAR моделей от моделей с экзогенными переменными
Всем доброго времени года! Подскажите чем отличается модель векторной авторегрессии от модели с экзогенными переменными. Модель...

Размножение моделей данных
Здравствуйте. Есть (пока-что) 3 модели данных унаследованных от QAbstractListModel. Пример одной из них: //Модель сервоприводов class...

Связь моделей данных в sequelize
Проблема: выводит ошибку - Cannot read properties of undefined (reading 'hasOne'), при попытки установить связи между моделями данных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru