【问题标题】:Flask, SQLAlchemy, Foreign Keys烧瓶,SQLAlchemy,外键
【发布时间】:2013-07-06 17:56:43
【问题描述】:

您好,我有一些外键问题。

我有这样的事情:

class Foo(db.Model):
    """The foo object."""
    __tablename__ = 'foos_foo'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.Text, unique=True)
    content = db.Column(db.Text)
    bar = db.relationship('Bar', backref='bars_bar')
    bar_id = db.Column(db.Integer, db.ForeignKey('bars_bar.id'))


class Bar(db.Model):
    """The bar object."""
    __tablename__ = 'bars_bar'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, unique=True)
    description = db.Column(db.Text)
    status = db.Column(db.SmallInteger, default=NEW)

我使用这种配置风格:https://github.com/mitsuhiko/flask/wiki/Large-app-how-to

所以我有这样的事情:

from app.foos.views import mod as foosModule
from app.bars.views import mod as barsModule

app.register_blueprint(foosModule)
app.register_blueprint(barsModule)

如果我以 Mitsuhiko 的配置样式调用 python shell.py,则会出现此错误:

sqlalchemy.exc.OperationalError: (OperationalError) no such table: bars_bar u'SELECT bars_bar.id AS bars_bar_id, bars_bar.name AS bars_bar_name, bars_bar.description AS bars_bar_description, bars_bar.status AS bars_bar_status \nFROM bars_bar' ()

那里发生了什么?是的,桌子不在那里,因为我会创建它?有没有办法先创建一些表?或者我做错了什么?

感谢您的宝贵时间!

【问题讨论】:

    标签: python foreign-key-relationship flask-sqlalchemy


    【解决方案1】:

    引用Flask-SQLalchemy docs:

    要创建初始数据库,只需从交互式 Python shell 中导入 db 对象并运行 SQLAlchemy.create_all() 方法来创建表和数据库:

    from yourapplication import db
    db.create_all()
    

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2016-09-06
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 2014-07-20
      • 2020-05-31
      相关资源
      最近更新 更多