我在web2py中制作了一个进度表,但它只显示在终端窗口中。如何让进度条/米在web2py的HTML页面中工作?
以下是代码的一部分:
k = 1 # This is the loop variable for subplots.
for counter in nus:
fig = plt.figure()
D = E*(h**3)/(12*(1-counter**2)) # Cylindrical rigidity.
T0 = (L**2)/(D*np.pi**2)*T0_orig # Nondimensional tension.
amax = T0/kappa # Maximum allowed alpha (to keep tension nonnegative everywhere).
alphas = [0, (10**-6)*amax, (10**-4)*amax, (10**-2)*amax] # Nondimensional alphas to use for plot.
workdone = 0.0 # How much of the Figure has been calculated? 0.0 = none, 1.0 = Figure is ready to show.
workstep = 100.0/len(alphas) # How much work is done during one step in the loop? If there are 4 steps in the loop, then then step will be 100.0/4 = 25.0.
for alpha in alphas:
lambda_, xx, f = nonhomog_solver(kappa, alpha, nu, nx)
V0 = np.sqrt( T0_orig/m + np.pi**2 * D/(m*L**2)*lambda_ )
if (k == 1):
V0_ref = V0
# Figure 1
fig_a = fig.add_subplot(2,2,k)
fig.subplots_adjust(hspace=0.4)
if (k == 1):
fig_a.set_title(r'$\alpha / \alpha_{max} = %.2g, V_{0}^{ref} = %.6g$ m/s' % (alpha/amax, V0))
else:
fig_a.set_title(r'$\alpha / \alpha_{max} = %.2g, V_{0}/V_{0}^{ref} = %.6g$' % (alpha/amax, V0/V0_ref))
fig_a.plot(xx,f)
plt.xlim(-kappa,kappa)
plt.xlabel(r'$\eta$')
plt.ylim(-0.1,1.1)
if ((k == 1) or (k == 3)):
plt.ylabel(r'$f(\eta)$')
workdone = workdone + workstep
print "Figure 1:", workdone, "%/100.0% done."
# Let's get ready for the next subfigure.
k = k + 1
答案 0 :(得分:2)
你可能最好不要问mailing list。
您的代码是否在控制器内部(或被调用)?请注意,print语句不会向网页发送任何输出(即,它们不会影响HTTP响应) - 为此,您的控制器需要将dict返回到视图(或返回字符串)。对于进度条,您最终可能需要使用Ajax(另请参阅here)。
此Client Tools模块有一个进度条示例(滚动到“更多示例”部分)。我没有使用它并且不确定它是否适合您的用例,但它可能会给您一些想法。