Как мне использовать контент HTML и JSON с помощью Flask?Python

Программы на Python
Anonymous
Как мне использовать контент HTML и JSON с помощью Flask?

Сообщение Anonymous »

Я хотел бы настроить приложение Flask, имеющее как графический интерфейс, так и компонент API. Вот простой пример получения списка групп:

def get_groups():
groups = db.session.query(SgmGroup.group_name).order_by(SgmGroup.group_name).all()
return [group.group_name for group in groups]

@app.route('/list')
def group_list():
groups_list = get_groups()
return render_template('groups.html', groups=groups_list)


Пока все хорошо — пользователю будет предоставлен список пользователей в формате HTML, возможно, в виде таблицы или другого удобного формата графического интерфейса.

Но я также хотел бы предоставлять контент JSON для запросов API:

@app.route('/api/list')
def api_group_list():
groups_list = get_groups()
return jsonify({'groups': group_list})


Это работает, но хорошая ли это идея? У меня два вопроса:

1) Подходит ли этот способ использования Flask, когда у меня есть два разных типа контента? Создать URL-адрес /endpoint для веб-браузеров (HTML) и идентичный URL-адрес /api/endpoint для обработки запросов API (JSON)?

2) Или мне следует объединить эти две конечные точки в одну функцию? Казалось бы, так проще, но как определить, к какой конечной точке обращался пользователь? То есть можно ли сделать приведенный ниже псевдокод?

@app.route('/list')
@app.route('/api/list')
def group_list():
groups_list = get_groups()

if :
return render_template('groups.html', groups=groups_list)

elif :
return jsonify({'groups': group_list})


Подробнее здесь: https://stackoverflow.com/questions/365 ... with-flask

Вернуться в «Python»