zoukankan      html  css  js  c++  java
  • 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()
    
    
    
     
  • 相关阅读:
    html5 悬浮提示框
    ajax 接收json
    ajax 发送参数
    jquery无刷新请求ajax
    jQuery 发送 ajax json 请求
    html5 三级联动菜单
    iframe 用法
    html5 复制文字
    bootstrap表单按回车会自动刷新页面的问题
    jquery版本不兼容问题
  • 原文地址:https://www.cnblogs.com/xuehaiwuya0000/p/11143078.html
Copyright © 2011-2022 走看看