[英]Internal server error with Flask trying to run python script
我已经设置了一个基本的 Flask 页面 index.html 来运行我的 app.py 脚本。 目录结构是包含 app.py 的 myapp 文件夹、包含 index.html 的模板文件夹和一个 venv 文件夹。 我试图让我的 app.py 脚本(它下载一个 excel 文件,它在 ipython 中单独运行时工作)在单击 GO 按钮时运行。 我可以很容易地让 Flask 在 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>
任何提示将不胜感激。 谢谢
您应该将错误输出放在问题中而不是注释中。 这将有助于其他人回答您的问题,因为并非每个人都会阅读评论。
但是,根据错误,您似乎没有安装运行应用程序所需的模块和包。
您已在此处导入它们:
@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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.