You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask模板显示property对象而非用户名值的问题求助

return (<H2> Hi {{name}} </h2>
...
```

结果页面并没有显示预期的用户名,而是输出了:
```
Hi <property object at 0x7fb37dfe6958>
```

## 解决方法
出现这个问题是因为`cas.username`在这里返回的是一个属性对象(property object),而非实际的用户名字符串。这里有两种可靠的解决方式:

### 方式1:从Flask Session中直接获取(推荐)
Flask-CAS完成认证后,会把用户名存入Flask的`session`对象中,对应的键是`CAS_USERNAME`。你可以直接从session中取出这个值:

修改`__init__.py`中的代码,记得先导入`session`:
```python
from flask import Flask, session  # 新增session导入
from flask_cas import CAS
from flask_cas import login_required
# ...
APP = Flask(__name__)
cas = CAS(APP)
# ...
def list_page():
    # 从session获取用户名,加默认值避免未登录时出错
    username = session.get('CAS_USERNAME', '匿名用户')
    return render_template("list.html", name=username)
@app.route('/admin/')
@login_required
def admin_page():
    return list_page()
```

### 方式2:调用属性方法(适配部分版本)
如果你的Flask-CAS版本中,`cas.username`是一个可调用的方法,你可以尝试通过调用它来获取用户名:
```python
def list_page():
    return render_template("list.html", name=cas.username())
```

不过更推荐方式1,因为session中的值是CAS认证后明确写入的,不会受版本差异影响。修改完成后,再访问页面就能正常显示用户名了!

内容的提问来源于stack exchange,提问作者Md Monjur Ul Hasan)
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:31:20