当用户提供输入python时,Flask应用程序可执行文件不起作用

问题描述 投票:0回答:1

我使用cx_Freeze创建了flask应用程序可执行文件。

from cx_Freeze import setup, Executable

include_files = [ 'templates', 'static','res', 'doc','images',]
include = [ 'jinja2', 'jinja2.ext']
flaskapp = Executable(script="Flask_App.py",targetName="OnePager.exe", )
setup(
    name="Prats17",
    version="1.0",
    description="Scrip analysis",
    options={
        'build_exe': {
            'include_files': include_files,
            'includes': include,
            'build_exe': "build"
        }
    },
    executables=[flaskapp]
)

Flask应用程序python文件导入另一个具有6个功能的py文件。当我通常在cmd上运行时效果很好--python Flask_App.py。

from flask import Flask,request, render_template,send_file,redirect,session, abort,url_for,flash,send_from_directory
import os
from flask_mail import Mail, Message

app = Flask(__name__)
app.secret_key = 'super secret key'

@app.route('/', methods = ['GET', 'POST'])
def login():
   error = None

   if request.method == 'POST':
      if request.form['uname'] != 'abc' or \
         request.form['passw'] != '*****':
         error = 'Invalid username or password. Please try again!'
      else:
         flash('You were successfully logged in')
         return redirect(url_for('result'))

   return render_template('login.html', error = error)

@app.route('/result',methods = ['POST', 'GET'])
def result():   
#    if request.method == 'POST':
    flash("You are successfully logged in!!!")   
    result = request.form
    return render_template("result.html",result = result)

@app.route('/myapp', methods=['POST','GET'])
def parse():
    if request.method == 'POST':
        import py_file

        global chrome_path

        chrome_path=os.getcwd()+'\\res\\chromedriver.exe'

        global symbol
        symbol = request.form['new-name']   

        volume_df = py_file.get_volume_data(symbol)

        return  render_template('myapp.html',filename=symbol+'.docx')

    return render_template('myapp.html')

@app.route('/download/<filename>')
def download_file(filename):
    return send_from_directory('./doc/', filename)

if __name__ == '__main__':
    app.config['SESSION_TYPE'] = 'filesystem'
    app.run()

执行exe后,页面创建为http://127.0.0.1:5000。直到http://127.0.0.1:5000/myapp都可以正常工作。但是,当我以输入形式发布符号时,它给了我错误页面.. 无法访问此站点。连接已重置。

python flask cx-freeze
1个回答
0
投票

我认为您的方法必须有一些错误,调试为“ View函数未返回响应”或类似的东西时,werkzeug会翻译此错误。当您在生产环境中运行时,它会像这样。

尝试将所有方法,然后在遇到错误时重定向到另一页。

© www.soinside.com 2019 - 2024. All rights reserved.