我的问题是我无法通过python shell添加用户。然后,如果我从应用程序导入类Admin,但出现错误,则添加用户
NameError: name 'Admin' is not defined
。
在models.py
中from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Table, Column, Integer, ForeignKey, DateTime
from sqlalchemy.orm import relationship
class Admin (db.Model):
idAdmin = db.Column(db.Integer, primary_key=True)
login = db.Column(db.String(255))
password = db.Column(db.String(255))
pin = db.Column(db.Integer)
name = db.Column(db.String(255))
surname = db.Column(db.String(255))
def __repr__(self):
return f"Admin('{self.name}','{self.surname}')"
在初始 .py
中from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from model import db
from flask_wtf.csrf import CSRFProtect
import os
app = Flask(__name__)
file_path = os.path.abspath(os.getcwd()) + "\database.db"
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + file_path
db = SQLAlchemy()
db.create_all()
文件夹
aplication
|
|-----app
| |
| |---static
| | |...
| |
| |---templates
| | |...
| |
| |---__init__.py
| |
| |---forms.py
| |
| |---models.py
| |
| |---views.py
|
|-----run-test.py
|
|-----run.py
|
|-----start.sh
根据https://flask-sqlalchemy.palletsprojects.com/en/2.x/quickstart/ 我必须考虑:
>>> from app import db
>>> db.create_all()
>>> from app import Admin
>>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump')
>>> db.session.add(admin)
>>> db.session.commit()
输入命令>>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump')
后
我收到错误消息NameError: name 'Admin' is not defined
答案 0 :(得分:0)
您的导入似乎应该
from app.models import Admin