开发者社区> 问答> 正文

Flask尝试运行python脚本时出现内部服务器错误

一码平川MACHEL 2019-01-18 11:13:26 891

我已经设置了一个基本的Flask页面,index.html来运行我的app.py脚本。目录结构是包含app.py的myapp文件夹,包含index.html的templates文件夹和一个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的代码是



Go Python
分享到
取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:25:52

    据错误,您似乎没有安装所需的模块和包来运行您的应用程序。

    你在这里导入它们:

    @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

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题