使用web2py时,为什么使用auth时url会自动更改

时间:2015-12-24 09:55:36

标签: python web2py

我在控制器文件中定义了一个函数(test.py) 代码是:

Config-($CONFIG_SAMPLE)   = sample.o

然后,当我访问http://localhost:8000/demo/test/user时 为什么网址会自动更改为http://localhost:8000/demo/default/user/login

1 个答案:

答案 0 :(得分:1)

当您通过[master@localhost part3ddis]$ g++ maintestconjugategradientmatCCS.cc densematrixvector.cc mmio.cc libsuperlu_4.3.a libblas.a -lgfortran /tmp/ccg7iPUj.o: In function `int ConjugateGradient<DenseMatrix, DenseVector>(DenseMatrix const&, DenseVector const&, DenseVector&, int const&, int const&)': maintestconjugategradientmatCCS.cc:(.text._Z17ConjugateGradientI11DenseMatrix11DenseVectorEiRKT_RKT0_RS5_RKiSA_[_Z17ConjugateGradientI11DenseMatrix11DenseVectorEiRKT_RKT0_RS5_RKiSA_]+0xb2): undefined reference to `void gemv<DenseMatrix, DenseVector>(double const&, DenseMatrix const&, DenseVector const&, double const&, DenseVector&)' maintestconjugategradientmatCCS.cc:(.text._Z17ConjugateGradientI11DenseMatrix11DenseVectorEiRKT_RKT0_RS5_RKiSA_[_Z17ConjugateGradientI11DenseMatrix11DenseVectorEiRKT_RKT0_RS5_RKiSA_]+0x208): undefined reference to `void gemv<DenseMatrix, DenseVector>(double const&, DenseMatrix const&, DenseVector const&, double const&, DenseVector&)' collect2: error: ld returned 1 exit status 调用Auth对象时,它会检查URL args(即控制器和函数之后的URL部分),以确定请求了哪个Auth方法(例如,登录,注册,个人资料等)。如果没有URL arg(如你的情况),那么它会重定向到与当前URL相同的URL,但是附加了/ login(否则,如果没有请求任何特定的Auth方法,它将没有任何内容可以返回)。 / p>

如果您打算使用上述构造(即简单调用auth()的通用user函数),那么您应该创建包含特定Auth方法的链接作为第一个URL arg。如果由于某种原因您希望登录链接为/ user(没有任何URL arg),您可以执行以下操作:

auth()

如果没有URL args,那将明确返回登录表单,否则会回退到标准行为。

对于每个Auth方法,您当然可以完全独立的操作:

def user():
    if not request.args:
        form = auth.login()
    else:
        form = auth()
    return dict(form=form)