【问题标题】:Execution error in flask python烧瓶python中的执行错误
【发布时间】:2018-02-22 09:36:56
【问题描述】:

当用户从烧瓶表单发送输入数据时,我正在尝试执行 pp 函数。但是当我单击表单提交按钮时,中间的一些功能会跳过( os.system(command)) 并直接渲染pp.html页面

@app.route('/pp.php', methods=['GET', 'POST'])
    def pp():
        pp = My1Form()
        target = os.path.join(APP_ROOT, 'images/')
        print(target)
        if pp.validate_on_submit():
            for fileNavRover in request.files.getlist("fileNavRover"):
                print(fileNavRover)
                filename = fileNavRover.filename
                destination = "/".join([target, filename])
                print(destination)
                fileNavRover.save(destination)

                c=fileNavRover.filename
                elevation=pp.ema.data
                Freq=pp.frq.data
                posMode=pp.pmode.data                   
                os.system(command)

            return render_template('results.html', email=email_send, Name=pp.Name.data, ema=elevation, frq=Freq, pmode=posMode)
        return render_template('pp.html', pp=pp)

我相信这一定是一个缩进问题,但我不知道我的问题出在哪里。

【问题讨论】:

    标签: flask wtforms flask-wtforms


    【解决方案1】:

    如果您的代码直接转到return render_template('pp.html', pp=pp),这只能意味着if pp.validate_on_submit(): 行返回False(即表单未通过验证)。

    您可以检查表单错误以找出验证失败的原因:

    if pp.validate_on_submit():
        ...
    else:
        print(pp.errors) # errors will be printed to the console
    

    【讨论】:

    • 正如你上面提到的,我查看了烧瓶表单验证,发现了问题。我在表单中声明了错误的验证字段。
    【解决方案2】:

    问题是我在烧瓶表单中包含了某些错误的验证字段。所以即使我在表单中输入了正确的值,它总是无法验证

    class My1Form(FlaskForm):
        ema = IntegerField('Elevation mask angle',[validators.InputRequired(), validators.NumberRange(min=0, max=100)])
    

    以前ema 被声明为文本字段。所以当我尝试输入整数值时,它总是无法验证。

    @app.route('/pp.php', methods=['GET', 'POST'])
    def pp():
        pp = My1Form()
        if pp.validate_on_submit():
            target = os.path.join(APP_ROOT)
            print(target)          
    
            for fileObsRover in request.files.getlist("fileObsRover"):
                print(fileObsRover)
                filename = fileObsRover.filename
                destination = "/".join([target, filename])
                print(destination)
                fileObsRover.save(destination)    
    
                c=fileNavRover.filename
                elevation=str(pp.ema.data)
                Freq=pp.frq.data
                posMode=pp.pmode.data
                emailAdd=pp.email.data
    
                chain(processPP.s(posMode,Freq,elevation,a,b,c), emailfile.s(emailAdd), deletefile.s()).apply_async()
    
                return render_template('results.html', email=pp.email.data, Name=pp.Name.data, ema=elevation, frq=Freq, pmode=posMode, fileBase=a)
        return render_template('pp.php', pp=pp) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      相关资源
      最近更新 更多