#python #flask #sqlalchemy #flask-sqlalchemy
#python #flask #sqlalchemy #flask-sqlalchemy
Вопрос:
from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
engine = create_engine('sqlite:///database.db', echo=True)
Base = declarative_base()
########################################################################
class User(Base):
""""""
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String)
password = Column(String)
#----------------------------------------------------------------------
def __init__(self, username, password):
""""""
self.username = username
self.password = password
# create tables
Base.metadata.create_all(engine)
Предполагается, что это создаст структуру БД с именем файла database.db, но появляется ошибка, и как мне ее решить?
Любая помощь будет оценена.
Комментарии:
1. Если ваш отступ такой, как вы представили здесь, то у вас простая опечатка. Столбцы и
__init__
функция не являются частью тела вашего класса.2. Спасибо, приятель. Это сработало
Ответ №1:
Это была проблема с отступом. Решил это. Решение:
from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
engine = create_engine('sqlite:///tutorial.db', echo=True)
Base = declarative_base()
########################################################################
class User(Base):
""""""
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String)
password = Column(String)
#----------------------------------------------------------------------
def __init__(self, username, password):
""""""
self.username = username
self.password = password
# create tables
Base.metadata.create_all(engine)
Ответ №2:
В моем случае я получил эту ошибку, потому что я написал это как
Column('id', Integer)
Column('username', String)
Против
id = Column('id', Integer)
username = Column('username', String)