Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 2
1

Django и mongodb

23.10.2016, 13:52. Показов 1460. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую коллеги. Подскажите как можно в Django использовать mongodb в качестве основной базы. (Python 3.5)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2016, 13:52
Ответы с готовыми решениями:

Django MongoDB авторизация
Помогите сделать авторизацию на сайте с помощью логина и пароля из mongodb. База подключается вот...

Technical Lead - Python, Django, EC2, AWS, MongoDB – Zurich, Switzerland - Visasponsorship
Our client is a leading and highly innovative software company looking for a technical lead with...

Mongodb, Mongoid как ускорить запись данных в Mongodb
Добрый вечер всем! Мне нужно записать в Mongodb 2.000.000 рядов информации, по очереди, один за...

как реализовать аутентификацию на mongodb используя gem devise (mongodb + Rails + devise)
как реализовать аутентификацию в mongodb используя gem devise? в роутах у меня есть devise_for...

Настроить авторизацию через социальные сети в django с помощью Django Social Auth
Пытаюсь настроить авторизацию через социальные сети в django с помощью Django Social Auth, но...

9
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
23.10.2016, 16:23 2
Зайди в гугл, набери django mongodb, прочитай пару статей. Будут конкретные вопросы - пиши.
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
05.07.2020, 20:10 3
Здравствуйте! Раз тут общая тема, то начну с того что django рекомендует использовать для этой цели библиотеку djongo:
https://code.djangoproject.com/wiki/NoSqlSupport

которая в силу своего похожего названия часто путается поисковиками.)) и из-за этого попадаются часто не релевантные ссылки, ну да ладно.

У меня вопрос вот какой. Я хочу задать поле-агрегат. А агрегаты, ну как правило, представляют собой структуру питоновского словаря, в котором разные ключи могут содержать данные различных типов и это может быть и сам словарь.

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

Какой тип поля для этого использовать? Есть такой тип поля, на основе класса:

Python
1
class djongo.models.Aggregate(*args, filter=None, **kwargs)
В др. библиотеке mongodb-engine такой тип поля DictField() и название более интуитивно понятно и объяснено, хотя бы на паре русскоязычных ресурсов.

По Aggregate вообще ничего нет, кроме справки без примеров и без описания его назначения. Кто сталкивался, подходит Aggregate из djongo.models для задания поля-агрегата?
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,242
05.07.2020, 22:37 4
Цитата Сообщение от maza1204 Посмотреть сообщение
Приветствую коллеги. Подскажите как можно в Django использовать mongodb в качестве основной базы. (Python 3.5)
Мне кажется, по факту это невозможно. Если речь именно об основной базе данных. Ну, самое простое: суперюзера надо создать? Уже надо реляционную базу для этого. Любые попытки иного будут греблей против течения. Мое скромное мнение. Не навязываю.

А в качестве дополнения - ну, почему нет-то. Мало ли, какие задачи там.
1
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
06.07.2020, 00:30 5
Цитата Сообщение от Kifsif Посмотреть сообщение
Мало ли, какие задачи там.
В том-то и дело, что NOSQL очень удобны тем, что из-за усложнения структур данных и подчас их громоздкости, они позволяют работать с ними.)) А реализовать такие вещи в django с SQL ну это как-то просто неудобно, и читабельность кода страдает и прочие вещи. Ну как доп. вспомогательные они могут быть использованы. Может в самой документации пример такой показали с 'default'

Вот еще такие разговоры про поле типа словаря Python. Люди хотят его использовать.
https://github.com/nesdis/djongo/issues/237


Python
1
2
3
from djongo import models
 
registrar_info = models.DictField()
У меня во второй строке Attribute Error , потому что его уже нет в models ) Поддерживать перестали:


DictField
MongoDB and other databases use ListField in combination with DictField to completely replace ManyToManyField in a lot of cases. Django currently doesn't provide an API for querying the data within a DictField (especially if it's embedded in a ListField). Ideally, the query API would just use the foo__bar JOIN syntax.

The field is already implemented in Django-nonrel, but lookups aren't supported, yet.[/B]

https://code.djangoproject.com/wiki/NoSqlSupport

Но можно попробовать другие библиотеки, как я уже сказал.
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
06.07.2020, 23:36 6
Кстати, если кому-то понадобиться использовать поле словаря для представления данных, то можно попробовать обойтись типом поля JSONField:

Python
1
2
3
4
5
6
from django.db import models
from django.contrib.postgres.fields import JSONField
 
class aModel(models.Model):
 
    F = JSONField()
А как рендерить html ? Т.е. по ключам? Как то так?:

HTML5
1
2
3
4
5
<ul>
 
{{ aModel.F['key'] }}
 
</ul>
Добавлено через 6 минут
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
07.07.2020, 00:16 7
Alex_py, через точку (если это джанго темплейт)

{{ aModel.F.key }}
1
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
07.07.2020, 05:45 8
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
Alex_py, через точку (если это джанго темплейт)
Спасибо)) А в названии ключей не должно быть пробелов?
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 494
07.07.2020, 14:31 9
И еще такой вопрос, если по некоторому ключу key --- список, то можно отображать отдельные элементы по индексам?

Как-то так?:

HTML5
1
{{ aModel.F.key[0] }}
0
1042 / 577 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
07.07.2020, 15:01 10
Цитата Сообщение от Alex_py Посмотреть сообщение
то можно отображать отдельные элементы по индексам?
насколько я помню, то либо фильтр писать, либо слайсы

https://stackoverflow.com/ques... -templates
1
07.07.2020, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2020, 15:01
Помогаю со студенческими работами здесь

Django 2.0 восстановление пароля через django-allauth
Здравствуйте, у меня возник вопрос, в django-allauth есть функция восстановления пароля по эл....

совместимость django-imagekit с релизами Django?
Скажите, пожалуйста, где в документации django-imagekit указана совместимость с релизами Django? А...

Ошибка django: DoesNotExist at /catalog/ django
Здравствуйте. Пишу простейший сайт на django. Пока в нем есть верхняя панель навигации и боковое...

Как поменялся синтаксис от применения django.conf.urls.url к django.urls.path?
Всем привет! Изучаю Django, действую гайдам. В гайде в urlpatterns пути прописывают через url. Но...

Django-admin : Имя "django-admin" не распознано как имя командлета, функции, файла сценария или выполняемой программы
Точнее я уже установила Django, но вот что он мне выводит, после того как пишу &quot;django-admin...

Django ORM запрос с подзапросом или переведите SQL в запрос Django ORM
В общем весь вопрос был в заголовке! Есть запрос на SQL он работает нормально вот только не знаю...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru