Не отрабатывает 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