如何在web2py中制作进度条/米?

时间:2011-02-15 10:44:04

标签: python html progress-bar web2py

我在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

1 个答案:

答案 0 :(得分:2)

你可能最好不要问mailing list

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

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