Не отрабатывает web-приложение на Pythonenywhere: https://delaver.pythonanywhere.com/

from flask import Flask, request, render_template, send_file
import requests
import os

app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])
def index():
    company_data = {}
    if request.method == 'POST':
        inn = request.form.get('inn')
        if inn:
            url = f'https://api.checko.ru/v2/company?key=DMHSH4B9Sz8UBhcc&inn={inn}'
            response = requests.get(url)
            data = response.json()

            if 'data' in data:
                company_data = {
                    'ОГРН': data['data'].get('ОГРН', 'Не найдено'),
                    'ИНН': data['data'].get('ИНН', 'Не найдено'),
                    'КПП': data['data'].get('КПП', 'Не найдено'),
                    'ОКПО': data['data'].get('ОКПО', 'Не найдено'),
                    'Наименование': data['data'].get('НаимПолн', 'Не найдено'),
                    'Статус': data['data']['Статус'].get('Наим', 'Не найдено') if 'Статус' in data[
                        'data'] else 'Не найдено',
                    'Адрес': data['data']['ЮрАдрес'].get('АдресРФ', 'Не найдено') if 'ЮрАдрес' in data[
                        'data'] else 'Не найдено',
                    'Деятельность': data['data']['ОКВЭД'].get('Наим', 'Не найдено') if 'ОКВЭД' in data[
                        'data'] else 'Не найдено',
                    'Уставной капитал': str(data['data']['УстКап'].get('Сумма', 'Не найдено')) if 'УстКап' in data[
                        'data'] else 'Не найдено',
                    "Phone": ' '.join(data['data']['Контакты'].get('Тел', 'Не найдено'))  if 'Контакты' in data['data'] else 'Не найдено',
                    'Email': ' '.join(data['data']['Контакты'].get('Емэйл', 'Не найдено')) if 'Контакты' in data['data'] else 'Не найдено',
                    'Site': str(data['data']['Контакты'].get('ВебСайт', 'Не найдено')) if 'Контакты' in data['data'] else 'Не найдено',                }

                # Сохранение данных в текстовый файл
                with open('company_data.txt', 'w', encoding='utf-8') as f:
                    for key, value in company_data.items():
                        f.write(f'{key}: {value}\n')

                return render_template('index.html', company_data=company_data)

    return render_template('index.html', company_data=None)


@app.route('/download')
def download():
    return send_file('company_data.txt', as_attachment=True)


if __name__ == '__main__':
       app.run(host='0.0.0.0', debug=True, port=8000)


<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
    <title>Данные о компании</title>
</head>
<body>
<h1>Проверка данных о компании</h1>
<form method="POST">
    <label for="inn">Введите ИНН компании:</label>
    <input type="text" name="inn" id="inn" required>
    <button type="submit">Проверить</button>
</form>

{% if company_data %}
    <h2>Данные о компании:</h2>
    <ul>
        {% for key, value in company_data.items() %}
            <li>{{ key }}: {{ value }}</li>
        {% endfor %}
    </ul>
    <form action="/download" method="GET">
        <button type="submit">Скачать данные</button>
    </form>
{% endif %}
</body>
</html>

Выдаёт ошибку:

 Debug mode: on
Address already in use
Port 8000 is in use by another program. Either identify and stop that program, or start the server with a different port.
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/werkzeug/serving.py", line 908, in prepare_socket
    s.bind(server_address)
OSError: [Errno 98] Address already in use
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/Delaver/mysite/app.py", line 53, in <module>
    app.run(host='0.0.0.0', debug=True, port=8000)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 920, in run
    run_simple(t.cast(str, host), port, self, **options)
  File "/usr/local/lib/python3.10/site-packages/werkzeug/serving.py", line 1059, in run_simple
    s = prepare_socket(hostname, port)
  File "/usr/local/lib/python3.10/site-packages/werkzeug/serving.py", line 927, in prepare_socket
    sys.exit(1)
SystemExit: 1

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

Автор решения: AnikeiPS

Запускать веб-приложение на Pythonanywhere прямо в программе не надо, это за вас делает Pythonanywhere сам. Единственное что требуется это чтобы название вашего объекта Flask соответствовало импорту в файле /var/www/[webapp]_pythonanywhere_com_wsgi.py

→ Ссылка