Я настроил базовую страницу Flask, index.html, чтобы запустить мой скрипт app.py. Структура каталогов - это папка myapp, содержащая app.py, папка шаблонов, содержащая index.html, и папка venv. Я пытаюсь заставить мой скрипт app.py (который загружает файл Excel и работает сам по себе в ipython) запускаться при нажатии кнопки GO. Я могу заставить флешку работать на localhost достаточно просто, и с кнопкой появляется index.html, но когда я нажимаю ее, я получаю: «Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен или есть ошибка в приложении. "
Я пытался целую вечность и смотрел на другие подобные вопросы, но безрезультатно.
Код для app.py выглядит следующим образом:
#!/usr/bin/env python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/app', methods=['GET', 'POST'])
def app():
import selenium
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.options import Options
import lxml
import time
import datetime
import pandas as pd
from bs4 import BeautifulSoup
options = Options()
options.headless = True
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://widget.sentryd.com/widget/#/15490A29-95E3-4296-999E-28D0B35E0D12/AUD-USD/4')
time.sleep(10)
soup1 = BeautifulSoup(driver.page_source, 'lxml')
table1 = soup1.find_all('table')
df1 = pd.read_html(str(table1[1]), header=0)
df1[0].columns = ['Delta_put', 'Price_put', 'Strike', 'Price_call', 'Delta_call', 'Vol', 'Skew', 'Vega']
df1[0].drop(0, inplace=True)
writer = pd.ExcelWriter('options_{}.xlsx'.format(pd.datetime.today().strftime('%d %b %y')), engine='xlsxwriter')
df1[0].to_excel(writer, 'Sheet1')
writer.save()
return 'Downloading...'
if __name__ == '__main__':
app.run()
Код для index.html:
<form action="/app" method="POST">
<input type="submit" value="GO">
</form>
Любые советы будут оценены. Спасибо