No laravel temos os mutators, que nos ajudam a alterar o retorno de certos campo do banco de dados. No flask com sql sqlalchemy, temos essa possibilidade também?
No laravel temos os mutators, que nos ajudam a alterar o retorno de certos campo do banco de dados. No flask com sql sqlalchemy, temos essa possibilidade também?
Olá Willian, como você está?
Peço desculpas pela demora no retorno.
Assim como no Laravel, o Flask com SQLAlchemy também oferece suporte para mutators, que permitem alterar o comportamento de atributos do modelo. No SQLAlchemy, esses mutators são conhecidos como hybrid properties.
As hybrid properties são propriedades que possuem um comportamento customizado, e podem ser usadas para transformar os valores retornados pelo banco de dados. Por exemplo, você pode usar uma hybrid property para retornar o valor de um campo em um formato específico, como uma string formatada ou um objeto personalizado.
Para criar uma hybrid property no SQLAlchemy, você pode usar o decorador @hybrid_property
. Por exemplo:
from sqlalchemy.ext.hybrid import hybrid_property
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64))
_password = db.Column('password', db.String(64))
@hybrid_property
def password(self):
return self._password
@password.setter
def password(self, password):
self._password = generate_password_hash(password)
Neste exemplo, a propriedade password
é uma hybrid property
que encripta o valor do campo _password
antes de salvá-lo no banco de dados.
Caso queira se aprofundar neste assunto, recomendo a leitura abaixo:
O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.
Espero ter ajudado. Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!