такое? https://docs.djangoproject.com/en/3.1/topics/db/managers/ это?
Да, я хочу использовать ту же базу данных и те же модели, что описаны в django, но sqlite требует один и тот же memory space вплоть до потока, да и сам django райзит ошибку при попытке его экспорта
Пока это выглядит как "смешались люди, кони". Вы хотите использовать готовую структуру django-приложения, но вместо какой-то предыдущей версии (какой?) хотите использовать sqlite?
Нет, я хочу засунуть эту структуру в отдельный модуль
Для чего? Почему бы из этого модуля напрямую не юзать ваше django-приложение?
Тогда будет, вообще, каша. Django используется чисто для админки и управления данными: в главном объекте висит сокет-сервер, django использует сокет-клиент для управления состояниями, перезагрузки данных с помощью вьюх и по добавлении или апдейте объектов некоторых моделей (переопредёлн метод save). На текущий момент у меня реализован свой менеджер с самописными SQL запросами, но все модели имеют одну структуру. Я подошёл к этапу, когда мне нужно переопределить модели и сделать проект расширяемым, плюс в моделях будут использоваться как внешние ключи, так и junction таблицы (отоношения многие-ко-многим), и писать под всё это SQL запросы будет ну очень утомительно, да и смысла в этом нет, так как есть куча ORM модулей - вопрос только в том, как не дублировать код и использовать либо менеджер django, либо экспортировать описанные модели в какой-то другой ORM модуль
Попробуйте порыть в строну включения WAL в sqlite, чтобы решить проблему конкурентного доступа. https://www.sqlite.org/wal.html Убежден, что я где-то видел готовый проект про это, но никак не могу найти
Ознакомился, спасибо. Честно, для меня сейчас тяжело и некогда что-то новое изучать, и я бы предпочёл пока находиться в диапазоне инструментов, которые известны
Ну по умолчанию sqlite не умеет в конкурентный доступ. Так что нужно либо включить WAL, либо использовать другую СУБД, либо пользоваться API django-приложения для реализации остальных хотелок помимо админки
Он-то может и не умеет, но самописный менеджер с SQL запросами же подключается к БД, так ведь? С помощью него я читаю данные на ура, добавляю их, а значит такой подход должен сработать. Быть может, я как-то могу скопировать менеджер БД, используемый в django с помощью copy/deepcopy? Где он, вообще, находится, не подскажите?
Вы хотите странного. Оторвать ORM от django не получиться - он туда довольно крепко приколочен. Но можно напрямую использовать модели имеющегося приложения https://stackoverflow.com/questions/53657609/using-django-orm-from-non-django-python-script Адекватно работать в конкуретном режиме с sqlite это не будет
https://docs.djangoproject.com/en/3.1/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage Нашёл. Спасибо большое за дискуссию и помощь
Обсуждают сегодня