我已经建立了一个基本的Flask页面index.html来运行我的app.py脚本。目录结构是包含app.py的myapp文件夹,包含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>
任何提示将不胜感激。谢谢
答案 0 :(得分:0)
您应该将错误输出而不是注释放在问题中。这样可以帮助其他人回答您的问题,因为不是每个人都在评论。
但是,基于该错误,您似乎没有安装运行应用程序所需的模块和软件包。
您已将它们导入此处:
@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
您应该使用首选的安装方法来安装这些模块。
您可以使用pip
来安装它们。
因此,请转到项目的环境,打开控制台并安装它们。
pip install beautifulsoup4
pip install selenium
pip install pandas
pip install lxml