Я использую зефир и sqlalchemy в моем приложении RESTful flask для сериализации и десериализации моих моделей (я делаю все это впервые). Я создал маршрут для получения всех пользователей из базы данных MySQL. При запросе к базе данных я могу получить всех пользователей (id, first_name, last_name). При распечатке пользователей я вижу:
[
('UUID1', 'firstname1', 'lastname1'),
('UUID2', 'firstname2', 'lastname2')
]
ПРИМЕЧАНИЕ: Я сохраняю идентификатор как двоичный и использую функции базы данных BIN_TO_UUID () и UUID_TO_BIN ().
Ответ, который я получаю, когда нажимаю на этот маршрут:
[
{"first_name": "firstname1", "last_name": "lastname1"},
{"first_name": "firstname2", "last_name": "lastname2"}
]
class UsersSchema(Schema):
id = fields.UUID(attribute="id")
first_name = fields.String()
last_name = fields.String()
class Meta:
fields = ("id", "first_name", "last_name")
class Users(db.Model):
__tablename__ = 'users'
id = db.Column(db.Binary(16), primary_key=True)
first_name = db.Column(db.VARCHAR(255))
last_name = db.Column(db.VARCHAR(255))
@app.route('/users')
def users():
try:
users = db.session.query(
func.bin_to_uuid(Users.id),
Users.first_name,
Users.last_name,
).all()
except Exception as e:
print('we got an error in users route')
print(e)
finally:
return jsonify(UsersSchema(many=True).dump(users))