Как отдать json файл на сервер Flask?

Ссылка скопирована
1 ответ

Подскажите, пожалуйста, как отдать json файл на сервер во Flask.
Как делаю я:

@app.route("/api/user_projects/<student_email>", methods=["GET"]) def get_projects_names_by_student_email(student_email):     a = cabinet_client.get_projects_names_by_student_email(student_email)     return json.dumps(a)

@app.route("/api/user_projects/<student_email>", methods=["GET"]) def get_projects_names_by_student_email(student_email): a = cabinet_client.get_projects_names_by_student_email(student_email) return json.dumps(a)

В переменной a - массив.

На сервере получаю:

Как отдать json файл на сервер Flask?

Дополнительно:

твои вопросы уже правили, нафига ты опять кучу тегов поставил?

Ответы:

GET не используется для отправки данных. В общем случае необходимо отправлять методом POST, изучите спецификации методов. И не путайте отправку с получением, а сервер с клиентом.

  • Как отдать json файл на сервер Flask?

    Если делаю POST, выдает такую ошибку

  • p1ugg, да, потому что у тебя нет такого метода на сервере фласк
    Я вычленил смысл твоего вопроса, он должен звучать следующим образом: как в фласке вернуть json на гет запрос.
    Ответ: https://flask.palletsprojects.com/en/3.0.x/quickst...
  • p1ugg, у тебя обработка только GET, добавь обработку пост запроса, и сделай пост запрос через другой файл и выведи то что вернёт тебе сайт
    @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email):     a = cabinet_client.get_projects_names_by_student_email(student_email)     return json.dumps(a)

    @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email): a = cabinet_client.get_projects_names_by_student_email(student_email) return json.dumps(a)

    Отправить запрос:

    import requests  respounse = requests.post('домен/api/user_projects/{почта}').json() print(respounse)

    import requests respounse = requests.post('домен/api/user_projects/{почта}').json() print(respounse)

  • Xacker Name, он неправильно сформулировал вопрос, у него ошибка в том что он отдает строку а не структуру данных и фласк не понимает что нужно json отдавать.
  • должно быть return a короче говоря
  • chemdev, ну и ладно, пусть в любом случае попробует сделать то что я написал, вдруг ему именно это надо‍
  • Xacker Name, у тебя ошибка в коде, json.dumps будет неправильно отдаваться.
  • chemdev,
    Xacker Name,
    @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email):     a = cabinet_client.get_projects_names_by_student_email(student_email)     return a

    @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email): a = cabinet_client.get_projects_names_by_student_email(student_email) return a

    Так тоже пробовал, но на сервере получаю

    Как отдать json файл на сервер Flask?

  • p1ugg, блин то что ты называешь сервером это в данном случае КЛИЕНТ. То, что ты там получаешь, зависит от того, как там обрабатывается ответ.
  • p1ugg, return a сделай json.damps

    и вообще перед ретурн попробуй сделать принт переменной а

  • я вообще не понимаю что ты хочешь сделать
  • Xacker Name,

    Как отдать json файл на сервер Flask?

    json.dumps то же самое возвращает

  • Xacker Name, Я хочу чтобы, вот данные выше отобразились в формате json на страничке
  • Xacker Name,

    return a сделай json.damps

    Документация фласк:

    A common response format when writing an API is JSON. It’s easy to get started writing such an API with Flask. If you return a dict or list from a view, it will be converted to a JSON response.

    Перевод:

    Распространенным форматом ответа при написании API является JSON. Начать писать такой API с помощью Flask легко. Если вы вернете из представления dict или list, оно будет преобразовано в ответ JSON.

    Зачем ты советуешь ему неправильные вещи?

  • p1ugg, нет он возвращает строку. Ладно, я дал все необходимое, чтобы ты разобрался.
  • p1ugg, нет у тебя никакой проблемы, открой уже для себя про кодирование не ascii символов в json.dumps по умолчанию
  • Everything_is_bad, я пробовал декодировать, у меня не получалось
  • chemdev, то что ты скинул не помогает
  • p1ugg, попробуй так
    from flask import jsonify  @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email):     a = cabinet_client.get_projects_names_by_student_email(student_email)     return jsonify(a)

    from flask import jsonify @app.route("/api/user_projects/<student_email>", methods=["GET", "POST"]) def get_projects_names_by_student_email(student_email): a = cabinet_client.get_projects_names_by_student_email(student_email) return jsonify(a)

  • p1ugg, не нужно это декодировать, сделай тот же print, нормально это выведет, хотя ты не рассказываешь где и как ты это используешь
  • Xacker Name, не помогает(
  • p1ugg, пошли в телегу я уже устал обновлять страницу
  • Xacker Name, + @dnsadnadnd241
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для того чтобы отдать JSON файл на сервер Flask, вам необходимо выполнить следующие шаги:

1. Создайте экземпляр Flask:

from flask import Flask
app = Flask(__name__)

from flask import Flask app = Flask(__name__)

2. Создайте маршрут для обработки запроса и возврата JSON:

@app.route('/get_json', methods=['GET'])
def get_json():
    data = {'key1': 'value1', 'key2': 'value2'}
    return jsonify(data)

@app.route('/get_json', methods=['GET']) def get_json(): data = {'key1': 'value1', 'key2': 'value2'} return jsonify(data)

3. Запустите сервер Flask:

if __name__ == '__main__':
    app.run()

if __name__ == '__main__': app.run()

После запуска сервера вы сможете обратиться к маршруту `/get_json` и получить JSON файл с данными `{'key1': 'value1', 'key2': 'value2'}`.

Таким образом, вы можете легко отдать JSON файл на сервер Flask, используя вышеприведенный код. Не забудьте импортировать необходимые модули, такие как `Flask` и `jsonify`, для корректной работы кода.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно