#python #fastapi #mongoengine
Вопрос:
Запустите проект на python, используя fastapi с помощью mongoengine. Вчера он работал нормально, но сегодня при запуске любого метода, имеющего подключение к базе данных, возникает ошибка сбоя подключения (mongoengine.connection.ConnectionFailure: Вы не определили соединение по умолчанию ).
Моя связь:
from mongoengine import connect connect(db="mydb", host='localhost', port=27017, alias='default')
Мои модели:
from mongoengine.document import Document from mongoengine.fields import StringField, BooleanField, ListField, ReferenceField from mongoengine import PULL class Permissao(Document): permissao = StringField() class Grupo(Document): grupo = StringField() permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL)) class Usuario(Document): nome_usuario = StringField() ativo = BooleanField() senha = StringField() grupos = ListField(ReferenceField('Grupo', reverse_delete_rule=PULL)) permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL))
Ответ №1:
Это сработало, я переключил соединение на модели и поставил мета-поле, проверьте его ниже:
from mongoengine.document import Document from mongoengine.fields import StringField, BooleanField, ListField, ReferenceField from mongoengine import PULL from mongoengine import connect connect(db="mydb", host="localhost", port=27017, alias="mydb-alias") class Permissao(Document): permissao = StringField() meta = {"db_alias" : "mydb-alias" , "collection" : "permissao"} class Grupo(Document): grupo = StringField() permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL)) meta = {"db_alias" : "mydb-alias" , "collection" : "grupo"} class Usuario(Document): nome_usuario = StringField() ativo = BooleanField() senha = StringField() grupos = ListField(ReferenceField('Grupo', reverse_delete_rule=PULL)) permissoes = ListField(ReferenceField('Permissao', reverse_delete_rule=PULL)) meta = {"db_alias" : "mydb-alias" , "collection" : "usuario"}