我是Python的新手,我需要你的帮助。我有一台Mac并使用python 3.使用SublimeText这是我在运行我的代码时收到的==>我收到此错误:NameError: name '__tablename__' is not defined
提前谢谢!!!
我的整个代码是:
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
#creare de tabela
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
program = Column(String)
aka = Column(String)
adresa = Column(String)
city = Column(String)
state = Column(String)
country = Column(String)
postalcode = Column(String)
def __repr__(self):
return "<User(name='%s', fullname='%s', program='%s', aka='%s',adresa='%s',city='%s',country='%s',postalcode='%s',)>" %(
self.name, self.fullname, self.program, self.aka, self.adresa, self.city, self.state, self.country,self.postalcode)
#creare de tabela
User.__tablename__
table('users', MetaData(bind=None),
Column('id', Integer(),table=(users), primary_key=True, nullable=False),
Column('name', String(), table=(users)),
Column('fullname', String(), table=(users)),
Column('program', String(), table=(users)),
Column('aka', String(), table=(users)),
Column('adresa', String(), table=(users)),
Column('city', String(), table=(users)),
Column('state', String(), table=(user)),
Column('country', String(), table=(users)),
Column('postalcode', String(), table=(users), schema=None))
答案 0 :(得分:0)
[...]
__spam
形式的任何标识符(至少两个前导下划线,最多一个尾随下划线)在文本上替换为_classname__spam
,其中classname是当前具有前导的类名下划线。
在您的用例中,您可以使用User._user__tablename__
要避免此问题,请使用一个前导下划线标记varbaile,并删除两个尾随下划线。这是pep8:
的建议
_single_leading_underscore
:弱&#34;内部使用&#34;指示符。例如。来自M import *不会导入名称以下划线开头的对象。