flask_sqlalchemy对数据进行操作

1.如何建表(增删改查)

2.如何对已存在的表进行增删改查

方法一:采用映射数据库的方法操作已存在的表,需要使用automap_base函数。缺点:由于是映射一张表,表与表之间的关系不能反应,查询多对多关系表时意义不大。

from sqlalchemy import create_engine
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker

uri = 'mysql://root:mysql@127.0.0.1:3306/flasknews'
engine = create_engine(uri, echo=False)
Base = automap_base()
Base.prepare(engine, reflect=True)
# 获取表对象
table_student = Base.classes.students#映射到students表
Session = sessionmaker(bind=engine)
session = Session()
#----------添加数据
def add():
    session.add(table_student(name="hello791"))
    session.commit()
def query():
    data=session.query(table_student).filter(table_student.id>=2).all()
    for name in data:
        print(name.name)
if __name__ == '__main__':
    # add()
    query()
2.建立表orm模型,数据库中如果有这个表,也不影响。
uri="mysql://root:mysql@127.0.0.1:3306/myflask?charset=utf8"

engine=create_engine(uri,echo=False)

base=declarative_base(engine)
session=sessionmaker(bind=engine)()


class AuthorsData(base):
    __tablename__="authors"
    id= Column(Integer, primary_key=True)
    name=Column(String(64), unique=True)
    books = relationship("BooksData",backref="authors")#以books,authors表示引用对方数据
    


class BooksData(base):
    __tablename__="books"
    id=Column(Integer,primary_key=True)
    name=Column(String(64), unique=True)
    author_id= Column(Integer,ForeignKey("authors.id"))

if __name__=="__main__":
session.query(BookData).all()


 
原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/11143078.html