我正在尝试通过终端创建用户,但收到以下消息:
(我已经看过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
答案 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
文件。您从哪个目录运行它?