app.py定义一个sectors视图,该视图使用 中Sectors定义的类sectors.py。当我访问视图时,我得到一个AttributeError:
sector = sectors.Sectors()
AttributeError: 'function' object has no attribute 'Sectors'
Run Code Online (Sandbox Code Playgroud)
import sectors
@app.route("/sectors")
def sectors():
sector = sectors.Sectors()
return render_template('sectors.html', sector=sector)
Run Code Online (Sandbox Code Playgroud)
我导入了sectors,所以它应该是一个模块,而不是一个函数,它确实已经Sectors定义了。为什么这不起作用?
您的视图函数与您之前导入的名称具有相同的名称。由于视图函数是在文件中导入后定义的,所以它就是名称所指向的。
或者别名导入:
import sectors as sectors_mod
@app.route("/sectors")
def sectors():
sectors_mod.Sectors()
...
Run Code Online (Sandbox Code Playgroud)
或者更改函数的名称。您仍然可以保留端点名称以"sectors"用于url_for.
import sectors
@app.route("/sectors", endpoint="sectors")
def sectors_view():
sectors.Sectors()
...
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,导入和函数的名称是不同的,并且端点名称"sectors"在两种情况下都保留,因此url_for("sectors")仍然有效。
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |