尝试导入模型时出现烧瓶错误

时间:2020-08-12 23:03:33

标签: python flask

我正在尝试通过终端创建用户,但收到以下消息:

(我已经看过SQLAlchemy的文档。创建User类并在同一文件中启动db时没有问题,但是在使用不同文件时我找不到问题所在)< / p>

>>> test = User('a', 'b', 'c')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'User' is not defined

我的目录树:

+-- __init__.py
+-- models
|   +-- tables.py

我的 init .py文件:

from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('config')

db = SQLAlchemy(app)

manager = Manager(app)

from app.models import tables
from app.controllers import default

我的tables.py(创建用户模型的文件):

from app import db
from flask_login import UserMixin


class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    username = db.Column(db.String(30), unique=True)
    password = db.Column(db.String(30))

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

    def __init__(self, name, username, password):
        self.name = name
        self.username = username
        self.password = password

1 个答案:

答案 0 :(得分:1)

您需要

from tables import User
# or models.tables, or app.models.tables, if not in same directory
test = User('a', 'b', 'c')

,您应该在__init__.py目录中有一个models文件。您从哪个目录运行它?