#flask #flask-sqlalchemy
#flask #flask-sqlalchemy
Вопрос:
Мое приложение flask определяет следующий маршрут:
@app.route('/logs', methods=['GET', 'POST'])
def log_collection():
if (request.method == 'GET'):
query = db.session.query(LogData)
return jsonify([log.to_dict() for logs in query.all()])
Затем я определил второй маршрут:
@app.route('/display_logs')
def logs():
# Call /logs endpoint to get data
return render_template('display_logs.html', data = logs)
Есть ли способ в Flask вызвать конечную точку / logs из /display_logs и получить все данные?
Ответ №1:
Я нахожу этот очиститель:
def fetch_logs():
query = db.session.query(LogData)
return [_log.to_dict() for _log in query.all()]
@app.route('/logs_ajax', methods=['GET', 'POST'])
def logs_ajax():
if (request.method == 'GET'):
return jsonify(fetch_logs())
@app.route('/logs_view')
def logs_view():
return render_template('display_logs.html', data = fetch_logs())
Ответ №2:
Вы можете напрямую вызвать метод log_collection()
внутри logs()
метода
@app.route('/display_logs')
def logs():
logs = log_collection()
return render_template('display_logs.html', data = logs)
Ответ №3:
You can call the log_collection function in a variable under /display_logs endpoint which it will return the data fetched under /logs
@app.route('/logs', methods=['GET', 'POST'])
def log_collection():
if (request.method == 'GET'):
query = db.session.query(LogData)
return jsonify([log.to_dict() for logs in query.all()])
@app.route('/display_logs')
def logs():
fetchLog = log_collection()
return render_template('display_logs.html', data = fetchLog)