AttributeError: 'Request' object has no attribute 'post'

from flask import Flask, request
from dotenv import load_dotenv
import os
from os.path import join, dirname
app = Flask(__name__)

def get_from_env(key):
    dotenv_path = join(dirname(__file__), '.env')
    load_dotenv(dotenv_path)
    return os.environ.get(key)

def send_message(chat_id, text):
    method = 'sendMessage'
    token = get_from_env('TELEGRAM_BOT_TOKEN')
    url = f'https://api.telegram.org/bot{token}/{method}'
    data = {'chat_id': chat_id, 'text': text}
    request.post(url, data=data)

@app.route('/', methods=['POST'])
def process():
    chat_id = request.json['message']['chat']['id']
    send_message(chat_id=chat_id, text='Привет!')
    return {'ok': True}

Вылазит ошибка: AttributeError: 'Request' object has no attribute 'post'


Ответы (1 шт):

Автор решения: Roman Konoval

Вы, похоже, хотите выполнить http запрос.

Для этого вам нужно использовать библиотеку requests, а не flask.request:

import requests

...

def send_message(chat_id, text):
   ...
   requests.post(url, data=data)
→ Ссылка