Python SQLALCHEMY我如何创建此表?
为了结束,答案是将Python SQLALCHEMY我如何创建此表?,python,sqlalchemy,Python,Sqlalchemy,为了结束,答案是将fine类移到create\u all语句之前,因为这是它创建必要表的部分 i、 e 欢迎来到SO。请尝试将fine类定义移到Base.metadata.create_all(bind=engine)前面,非常感谢! from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker
fine
类移到create\u all
语句之前,因为这是它创建必要表的部分
i、 e
欢迎来到SO。请尝试将
fine
类定义移到Base.metadata.create_all(bind=engine)
前面,非常感谢!
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy import Column, Integer, String
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:1234@localhost:3306/lunch"
engine= create_engine(
SQLALCHEMY_DATABASE_URL )
SessionLocal= sessionmaker(autocommit=False, autoflush=False, bind= engine)
Base = declarative_base() db= SessionLocal()
Base.metadata.create_all(bind=engine)
class Meal(Base):
__tablename__= 'meals'
id= Column(Integer, primary_key=True, autoincrement=True)
sandwich = Column(String(20), nullable=False)
fruit = Column(String(20), nullable=False)
tablenumber= Column(Integer)
def __repr__(self):
return '[{}, {}, {},{}]'.format(self.id, self.sandwich, self.fruit, self.tablenumber)
meal = Meal(id=1, sandwich='Libanais', fruit='banane', tablenumber= 21) print('----->', meal) db.add(meal) db.commit()
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'lunch.meals' doesn't exist") [SQL: INSERT INTO meals (id, sandwich, fruit, tablenumber) VALUES (%(id)s, %(sandwich)s, %(fruit)s, %(tablenumber)s)] [parameters: {'id': 1, 'sandwich': 'Libanais', 'fruit': 'banane', 'tablenumber': 21}] (Background on this error at: http://sqlalche.me/e/13/f405)
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, Integer, String
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:1234@localhost:3306/lunch"
engine = create_engine(SQLALCHEMY_DATABASE_URL )
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
db = SessionLocal()
class Meal(Base):
__tablename__= 'meals'
id = Column(Integer, primary_key=True, autoincrement=True)
sandwich = Column(String(20), nullable=False)
fruit = Column(String(20), nullable=False)
tablenumber = Column(Integer)
def __repr__(self):
return '[{}, {}, {},{}]'.format(self.id, self.sandwich,
self.fruit, self.tablenumber)
Base.metadata.create_all(bind=engine)
meal = Meal(id=1, sandwich='Libanais', fruit='banane', tablenumber= 21) print('----->', meal)
db.add(meal)
db.commit()