在python中用sql创建表_python – Flask-SQLAlchemy没有使用create_all()创建表

我有一个使用Flask-SQLAlchemy的Flask应用程序.在我的单元测试中,我初始化应用程序和数据库,然后调用db.create_all(),由于某种原因,它看起来没有拿起我的任何模型,所以不创建任何表.

我在我的模型中同时使用了__tablename__和__bind_key__,因为我有两个数据库.

我的配置:

SQLALCHEMY_DATABASE_URI = 'sqlite://'

SQLALCHEMY_BINDS = {

'db1': SQLALCHEMY_DATABASE_URI,

'db2': SQLALCHEMY_DATABASE_URI

}

在我的单元测试中减少我的setUp()方法的版本:

from flask import Flask

from flask.ext.sqlalchemy import SQLAlchemy

class APITestCase(unittest.TestCase):

app = Flask(__name__)

db = SQLAlchemy(app)

db.create_all()

这是我的两个模型的示例,每个模型来自一个绑定类型:

class Contact(db.Model):

__tablename__ = 'contact'

__bind_key__ = 'db1'

id = db.Column(db.Integer, primary_key=True)

first_name = db.Column(db.String(255))

last_name = db.Column(db.String(255))

...

def __init__(first_name, last_name):

self.first_name = first_name

self.last_name = last_name

...

class BaseUser(db.Model):

__tablename__ = 'User__GeneralUser'

__bind_key__ = 'db2'

id = db.Column(db.Integer, primary_key=True)

username = db.Column('Username', db.String(100))

first_name = db.Column('FirstName', db.String(100))

last_name = db.Column('Surname', db.String(100))

...

def __init__(username, first_name, last_name):

self.username = username

self.first_name = first_name

self.last_name = last_name

...

我错过了一些明显的东西吗? Flask-SQLAlchemy如何知道在哪里查找我的模型来创建关联表?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值