• 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()
    
    
    
     
  • 相关阅读:
    WCF 订单服务(2)
    移动应用接口的授权和安全
    数据库服务器死锁的解决方法 (转)
    WCF 订单服务(3)
    sqlservice 表分区方法
    基于.NET解决方案的架构和框架
    IIS7架构原理
    多线程的同步和通信
    【原创】关于wince OS开发面试问题的总结系列之OAL
    【原创】关于noot的学习笔记
  • 原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/11143078.html
Copyright © 2020-2023  润新知