Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
¿Cómo pasar una lista del backend del matraz a un frontend de reactjs?

Estoy trabajando con una API tranquila, escrita por un ex compañero de trabajo, cuando uso un GET para enviar un json desde la API del matraz a la interfaz y luego invoco el valor en el json, obtengo una cadena en lugar de una matriz, la lista Se ve como esto

['ETH/BTC','LTC/BTC','BNB/BTC']

Esto es lo que creo que es relevante del código

La ruta:

 @bp.route('/fetch_bots_names', methods=['GET']) def fetch_bots_names(): user_id = current_user.get_id() bots = db.session.query(Bot).all() viewable_bots = db.session.query(BotUserCanView).all() user_bots = [] names = [] for x in bots: ub = get_bot_data_as_dict(x) if ub != None: names.append(ub['name']) return {'ok': True, 'msg':'Success', 'data': json.dumps(names)}, 200

El JS para obtener los datos.

 const [botnames, setBotsNames] = useState([]); if(savedStrats.length==0){ fetch('/auth/fetch_bots_names', {method: 'GET'}) .then(res => {return res.text()}).then(response => { try { let r = JSON.parse(response); setBotsNames(r['data']); } catch { console.log(response); } }); }

y como señalé, el valor de botnames es una cadena como el ejemplo, pero lo necesito como una matriz (¿creo que una matriz JS?) para hacer un menú desplegable con los elementos de la lista, gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar jsonify para convertir sus datos en formato JSON y enviarlos como respuesta.
Puede usar argumentos de palabras clave o pasar un dict.
La documentación explica claramente el uso.

 from flask import jsonify @bp.route('/fetch_bots_names', methods=['GET']) def fetch_bots_names(): bot_names = [bot.name for bot in Bot.query.all()] return jsonify({ 'ok': True, 'msg':'Success', 'data': bot_names })

En React usas Fetch Api así.

 fetch('/auth/fetch_bots_names') .then(resp => resp.json()) .then(data => { setBotsNames(data.data); });

No he probado el código, pero debería funcionar.

Es posible que desee echar un vistazo a Flask-Marshmallow si desea enviar conjuntos de datos más grandes.
Aquí hay un ejemplo rápido usando Flask-Marshmallow en combinación con marshmallow-sqlalchemy.

 from flask import Flask from flask import jsonify from flask_sqlalchemy import SQLAlchemy from flask_marshmallow import Marshmallow app = Flask(__name__) db = SQLAlchemy(app) ma = Marshmallow(app) class Bot(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) class BotSchema(ma.SQLAlchemyAutoSchema): class Meta: model = Bot with app.app_context(): db.drop_all() db.create_all() bots = [Bot(name=f'bot-{i+1}') for i in range(5)] db.session.add_all(bots) db.session.commit() @app.route('/bots') def bots(): bots = Bot.query.all() bot_schema = BotSchema(many=True) bot_data = bot_schema.dump(bots) return jsonify(data=bot_data)

El resultado de la consulta se ve así.

 { "data": [ { "id": 1, "name": "name-1" }, { "id": 2, "name": "name-2" }, { "id": 3, "name": "name-3" }, { "id": 4, "name": "name-4" } ] }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!