flask create_all没有创建导入的表

时间:2014-04-04 01:51:41

标签: python sqlalchemy flask

两个模块server.py和models.py位于同一目录中。我在运行create_all之前导入模型,但从未创建User表。我也尝试将import models更改为from models import User,结果相同。请帮我理解这里发生了什么。 Server.py:

from flask import Flask
from fileserver.filebutler import butler
from flask.ext.sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.register_blueprint(butler)

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://working_url'
db = SQLAlchemy(app)


def initialize_db():
    import models
    db.create_all()


if __name__ == '__main__':
    initialize_db()
    app.run(debug=True)

models.py:

from sqlalchemy import Column, Integer, String
from downloadr import db


class User(db.Model):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50), unique=True)
    email = Column(String(120), unique=True)

    def __init__(self, name=None, email=None):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % (self.name)

2 个答案:

答案 0 :(得分:0)

尝试:

id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), unique=True)
email = db.Column(db.String(120), unique=True)

答案 1 :(得分:0)

使用:

from models import *

在我的情况下它工作正常(我没有使用函数来初始化,在if子句中只有2行代码)。