<p>当收到HTTP状态错误代码时,最好的做法是在调试模式下运行应用程序。由于您希望在WSGI服务器后面运行应用程序,因此最简单的方法是将最后一行更改为</p>
<pre><code>app.run(debug=True)
</code></pre>
<p>一旦您这样做,您将看到实际的错误。在这种情况下</p>
^{pr2}$
<p>使用交互式调试器,我们可以检查原因。在</p>
^{3}$
<p>这是你问题的根源。根据<a href="https://docs.python.org/3/library/math.html" rel="nofollow">documentation for the ^{<cd1>} module</a>(加黑体表示强调):</p>
<blockquote>
<p>CPython implementation detail: The math module consists mostly of thin wrappers around the platform C math library functions. Behavior in exceptional cases follows Annex F of the C99 standard where appropriate. <strong>The current implementation will raise ValueError for invalid operations like sqrt(-1.0)</strong> or log(0.0) (where C99 Annex F recommends signaling invalid operation or divide-by-zero), and OverflowError for results that overflow (for example, exp(1000.0)).</p>
</blockquote>
<p><code>math.sqrt(a_negative_number)</code>将引发一个<code>ValueError</code>。你的输入没有解决方案(或者有一个复杂的解决方案,这取决于你如何看待它)。你能做的最好的事情就是检查这个案例并向用户提供更好的反馈。在</p>
<pre><code>try:
discriminant_sqrt = math.sqrt(discriminant)
except ValueError:
flash('There is no solution for the given inputs.', 'error')
else
# continue with calculations
</code></pre>