@mercmarcus

Как подключить базу данных в Heroku?

Есть скрипт-парсер. Собирает информацию, сверяет даных с .тхт файлом. Деплой на Хероку. Но там нет файловой системы и мой .тхт файл не работает. А как подключить база данных вместо .тхт файла? Ниже прдеставлю код.

def getData():

    postsFile = open('posts.txt','r+') # Открываем файл на чтение и запись
    posts = postsFile.read().splitlines() # Читаем файл и помещаем строки в список posts
    
    response = requests.get('ссылка') # Загружаем страницу
    soup = BeautifulSoup(response.text,'lxml')

    datas = soup.find('section',class_='page__body').find_all('li',class_='content-list__item') # Ищем все теги 
    # с классом 
    for data in datas: # Проходимся по всем данным
        title = data.find('h2',class_='data__title').text.strip() # Получаем заголовок
        url = data.find('h2',class_='data__title').a.get('href') # Получаем ссылку
        if not url in posts: # Если ссылки нет в списке posts, тогда:
            print(title) # Печатаем заголовок 
            postsFile.writelines(url+'\n') # И ссылку записываем в файл posts.txt
    postsFile.close() # Закрываем файл

while True: # "Вечный" цикл
    getData() # Вызываем функцию получения новых вопросов
    time.sleep(30) # Делаем паузу на 30 секунд
    print('----------')
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaxKozlov
вместо
postsFile = open('posts.txt','r+') # Открываем файл на чтение и запись
posts = postsFile.read().splitlines() # Читаем файл и помещаем строки в список posts
у вас будет подключение к базе данных, создание таблицы, если надо
и чтение из неё данных
а вместо
postsFile.writelines(url+'\n') # И ссылку записываем в файл posts.txt

запись в базу данных

первый же пример работы из гугла по запросу "python postgresql"
https://pythonru.com/biblioteki/vvedenie-v-postgre...

по совету Александр, ссылка на аддон Heroku Postgres
https://elements.heroku.com/addons/heroku-postgresql

он понадобится чтобы подключить, собственно БД от heroku
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы