路线
from flask import Flask, render_template, request, flash, redirect
from flask_wtf import FlaskForm
# from flask.ext.sqlalchemy import SQLAlchemy
import logging
from logging import Formatter, FileHandler
from forms import *
import os
@app.route('/wallthickness')
def wallthickness():
form = WallThicknessCalc()
return render_template('forms/wallthickness.html', form = form)
@app.route('/result', methods = ['POST','GET'])
def result():
form = WallThicknessCalc()
diameter = ''
diameter = request.form.get('PipeOD')
if request.method == 'POST':
return render_template ('pages/result.html', form = form, diameter = diameter)
这是表单代码所在的 python 文件。
from flask_wtf import Form
from wtforms import TextField, PasswordField, FloatField, SubmitField
from wtforms.validators import DataRequired, EqualTo, Length
class WallThicknessCalc(Form):
PipeOD = TextField('Pipe Outer Diameter',
validators=[DataRequired()]
)
DesignPressure = TextField(
'Design Pressure', validators=[DataRequired()]
)
DesignFactor = TextField(
'Design Factor', validators=[DataRequired()]
)
SMYS = TextField(
'Specified Minimum Yield Stress', validators=[DataRequired()]
)
Calculate = SubmitField(
'Calculate', validators=[DataRequired()]
)
这是带有输入字段的表单。
{% extends 'layouts/main.html' %}
{% block title %}{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-md-6">
<form action="/result" method=[POST] class="form-group">
<fieldset>
<div>
{{ form.PipeOD.label(class="form-control-label") }}
{{ form.PipeOD(class = "form-control form-control-lg")}}
<br>
{{ form.DesignPressure.label(class="form-control-label") }}
{{ form.DesignPressure(class = "form-control form-control-lg")}}
<br>
{{ form.DesignFactor.label(class="form-control-label") }}
{{ form.DesignFactor(class = "form-control form-control-lg")}}
<br>
{{ form.SMYS.label(class="form-control-label") }}
{{ form.SMYS(class = "form-control form-control-lg")}}
<br>
{{ form.Calculate(class = "form-control form-control-lgbtn btn-primary")}}
</div>
</fieldset>
</form>
</div>
</div>
{% endblock %}
我试图在这里显示结果:
{% extends 'layouts/main.html' %}
{% block title %}{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-md-6">
<h4>The mininmum wall thickness is {{ diameter }} mm</h4>
</div>
</div>
{% endblock %}
我无法检索输入到表单字段中的值。我收到错误 TypeError TypeError:视图函数没有返回有效响应。该函数要么返回 None ,要么在没有 return 语句的情况下结束。