2011-02-15 37 views
0

我在web2py中制作了一个进度表,但它只显示在终端窗口中。我怎样才能使进度条/米在web2py的HTML页面中工作?如何在web2py中创建进度条/米?

下面的代码的一部分:

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 

回答

2

你可能会更好询问mailing list

你的代码是在一个控制器函数里面吗?请注意,打印语句不会将任何输出发送到网页(即,它们不影响HTTP响应) - 为此,控制器需要将dict返回到视图(或返回字符串)。对于进度条,您最终可能需要使用Ajax(另请参阅here)。

Client Tools模块有一个进度条示例(滚动到“更多示例”部分)。我没有使用它,我不确定它适合你的用例,但它可能会给你一些想法。