我想使用ORM在数据库中添加数据,而我是python中的ORM的新手。我对SQLAlchemy和Flask-SQLAlchemy感到困惑。“我尝试了此操作,但不知道如何进一步进行
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
engine = create_engine('sqlite:///C:\\Users\\52118792\\Desktop\\test.db')
Base = declarative_base()
class Student(Base):
__tablename__='Student'
name=Column(String)
seq=Column(Integer)
def __init__(self,name,sequence):
self.name=name
self.sequence=sequence
答案 0 :(得分:0)
Flask-SqlAlchemy通常用于烧瓶应用程序,否则只需普通的SqlAlchemy就足够了。
Flask-SqlAlchemy是SqlAlchemy的包装,具有以下优点:
这是如何使用SqlAlchemy代码的方法。
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///C:\\Users\\52118792\\Desktop\\test.db', echo=True)
Session = sessionmaker(bind=engine)
session = Session()
user = Student("test", 123)
session.add(user)
session.commit()
答案 1 :(得分:0)
首先,我建议您创建迁移。我选择的工具是alembic
。要创建Alembic项目,请按照以下步骤操作
alembic init alembic
env.py
中,您必须分配目标元数据。类似于target_metadata = Base.metadata
,其中Base是模型的声明性基础。env.py
中,您还应该导入Student
模型。以便我们的Alembic可以识别模型更改。alembic.ini
配置文件中,您必须提供数据库路径,以便将路径sqlite:///C:\\Users\\...\\myDB.db
分配给sqlalchemy.url
。alembic revision --autogenerate -m "Message"
,它将检测到Student
模型中的更改并创建迁移。运行alembic upgrade head
来应用这些迁移。Student
表是在sqlite中创建的,可以使用了。Session = sessionmaker()
Session.configure(bind=engine)
Session
工厂中,我们可以创建一个会话对象并将其用于执行SQL操作。
例如session = Session()
students = session.query(Student).all()
for student in students:
print(student.seq)
print(student.name)
这个解释很简短,但我希望它能使您开始使用sqlalchemy。
注意:我没有考虑过Webapp的场景,同样也没有考虑。在这种情况下,您将必须阅读scoped_session
。
作为参考,您可以在https://github.com/pranav93/sample_alembic_win浏览此代码
对于除菌剂,请通过https://alembic.sqlalchemy.org/en/latest/tutorial.html