简体   繁体   English

Can't import class model in database SQLAlchemy from shell python

[英]Can't import class model in database SQLAlchemy from shell python

My problem is that I have no possibility adding users by python shell.我的问题是我不可能通过 python shell 添加用户。 Then I add users if I import class Admin from application but I got error NameError: name 'Admin' is not defined .然后,如果我从应用程序导入 class Admin ,则添加用户,但出现错误NameError: name 'Admin' is not defined

in models.py在模型.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}')"

in init .py初始化.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()

folder文件夹

aplication
|
|-----app
|     |
|     |---static
|     |   |...      
|     |
|     |---templates
|     |   |...
|     |
|     |---__init__.py
|     |
|     |---forms.py
|     |
|     |---models.py
|     |
|     |---views.py
|
|-----run-test.py
|
|-----run.py
|
|-----start.sh

According tohttps://flask-sqlalchemy.palletsprojects.com/en/2.x/quickstart/ I must consider:根据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()

After entering the command >>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump') I get error NameError: name 'Admin' is not defined输入命令后>>> admin = Admin(username='John', password='1qaz@WSX', pin='1234', name='John', surname='Trump')我得到错误NameError: name 'Admin' is not defined

It looks like your import should be看起来您的导入应该是

from app.models import Admin

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM