• 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()
    
    
    
     
  • 相关阅读:
    Android error--No implementation found for native Lcomd
    【CareerCup】Trees and Graphs—Q4.3
    android 分享到QQ空间的全部操作
    ubuntu12.04安装翻译软件stardict及卸载
    Java获取当前操作系统的信息
    WebForm和MVC中都可以使用的路由
    使用 System.Transactions 进行事物管理
    .NET中四种常用事物
    sql语句:创建事物
    sql语句:CASE WHEN END 的用法
  • 原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/11143078.html
Copyright © 2020-2023  润新知