无法从Shell python

时间:2019-10-22 15:22:44

标签: python flask sqlalchemy flask-sqlalchemy

我的问题是我无法通过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/ 我必须考虑:

  1. >>> from app import db
  2. >>> db.create_all()
  3. >>> from app import Admin
  4. >>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump')
  5. >>> db.session.add(admin)
  6. >>> db.session.commit()

输入命令>>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump')后 我收到错误消息NameError: name 'Admin' is not defined

1 个答案:

答案 0 :(得分:0)

您的导入似乎应该

from app.models import Admin