python - 如何在实体中使用谷歌用户ID - python appengine

标签 python google-app-engine jinja2

我创建一个像这样的实体:

company = dbDatafile(usOwner = user)
company.name = self.request.get("name")
company.put()

其中 user 是 Google 用户帐户。现在,当我尝试搜索该用户时,例如:

datafiles = dbDatafile.gql("WHERE usOwner = '%s'" % user.user_id())

分配给 jinja2 模板变量:

template_values = {
    'datafiles': datafiles
}

并输出到html:

{% for datafile in datafiles %}
    >>>{{ datafile.name }}         chevrons to indicate any looping
{% endfor %}

我没有得到任何输出。

数据位于管理仪表板中,但我无法访问它。有什么想法吗?

谢谢

最佳答案

如果 usOwner 是 UserProperty,则需要在 GQL 中使用 USER():

datafiles = dbDatafile.gql("WHERE usOwner = USER(:1)", user.email())

还要记住始终使用占位符,而不是字符串插值 - 仅仅因为它不是 SQL,并不意味着它不易受到注入(inject)攻击。

关于python - 如何在实体中使用谷歌用户ID - python appengine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8119922/

相关文章:

Python - 有没有办法在没有安装工具的情况下获取 pip?

python - 在 python 中以特定条件匹配字符串上的数字

google-app-engine - AppEngine 上 remote_api 处理程序的管理员访问错误

python - 为什么我的 Flask 应用程序中的图像无法正常显示?

Python:如何从一行值创建一个完整的距离矩阵?

python - 使用重复嵌套模式从文本文件中提取文本

python - 列出 Google App Engine 数据存储中的所有实体时出现 AttributeError

android - 从浏览器填写 http 表单和在 Android 中使用 httppost 之间的区别

sql - 如何通过循环变量在 dbt 中多次运行 SQL 模型?

python - 无法使用 jinja 更改内联 css