【问题标题】:Flask - Trying to add an ID field in database which is incremented each timeFlask - 尝试在数据库中添加一个每次递增的 ID 字段
【发布时间】:2015-05-31 12:47:27
【问题描述】:

这是我的 models.py 文件中的代码。一切正常,直到我尝试为“ID”添加一个新字段,该字段随每个项目递增。这是一个在谷歌应用引擎上运行的烧瓶应用。

from google.appengine.ext import db

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.StringProperty(required = True)
    content = db.TextProperty(required = True)

这是我得到的回溯:

<type 'exceptions.AttributeError'>: 'module' object has no attribute 'Column'
Traceback (most recent call last):
  File "/base/data/home/apps/s~smart-cove-95709/1.384688470778541604/main.py", line 2, in <module>
    from blog import app
  File "/base/data/home/apps/s~smart-cove-95709/1.384688470778541604/blog/__init__.py", line 7, in <module>
    import views
  File "/base/data/home/apps/s~smart-cove-95709/1.384688470778541604/blog/views.py", line 2, in <module>
    from models import Post
  File "/base/data/home/apps/s~smart-cove-95709/1.384688470778541604/blog/models.py", line 3, in <module>
    class Post(db.Model):
  File "/base/data/home/apps/s~smart-cove-95709/1.384688470778541604/blog/models.py", line 4, in Post
    id = db.Column(db.Integer, primary_key=True)

我也试过了,但没有成功:

class Post(db.Model):
    id = db.Integer(primary_key=True)
    title = db.StringProperty(required = True)
    content = db.TextProperty(required = True)

【问题讨论】:

    标签: python google-app-engine flask


    【解决方案1】:

    Column 不是您未使用 SQLAlchemy 的成员。

    我认为来自 google.appengine.ext.db 的模型有一些开箱即用的密钥,请参阅 google 文档

    【讨论】:

    • 其他字段似乎没有使用 column 并且仍然有效。我可以不使用列就逃脱吗?我想要的只是为每个条目添加一个唯一的 ID
    • 我知道您使用的不是 SQLAlchemy,因为没有“列”成员。
    • 这是 GAE 数据库。我仍然不明白如何给每个项目一个唯一的键:s
    • 答案是id = db.Integer()
    • 很高兴你找到了它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2013-07-06
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2012-01-31
    • 2021-10-06
    相关资源
    最近更新 更多