zoukankan      html  css  js  c++  java
  • ORMmysql

    创建表,需要手动先创建数据库

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,Integer,String,ForeignKey
    from sqlalchemy import create_engine
    
    Base = declarative_base()
    class userinfo(Base):
        __tablename__ = "user_test"
        id = Column(Integer,primary_key=True,autoincrement=True)
        name = Column(String(32),nullable=True)
        age = Column(Integer,default=12,index=True)
        work = Column(String(32))
    
    
    engine = create_engine("mysql+pymysql://xiao:123123@42.193.197.149:3306/userinfo?charset=utf8")
    Base.metadata.create_all(engine)

     添加外键

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,Integer,String,ForeignKey
    from sqlalchemy import create_engine
    
    Base = declarative_base()
    
    class teacher(Base):
        __tablename__ = "teacher"
        tid = Column(Integer,primary_key=True)
        tname = Column(String(32))
    class course(Base):
        __tablename__ = "course"
        cid = Column(Integer,primary_key=True)
        cname = Column(String(32))
        tearch_id = Column(Integer,ForeignKey("teacher.tid"))
    
    engine = create_engine("mysql+pymysql://xiao:123123@42.193.197.149:3306/userinfo?charset=utf8")
    Base.metadata.create_all(engine)

     删除表

     对数据的操作:

    插入数据

    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker,relationship
    Base = declarative_base()
    class userinfo(Base):
        __tablename__ = "user_test"
        id = Column(Integer,primary_key=True,autoincrement=True)
        name = Column(String(32),nullable=True)
        age = Column(Integer,default=12,index=True)
        work = Column(String(32))
    
    
    engine = create_engine("mysql+pymysql://xiao:123123@42.193.197.149:3306/userinfo?charset=utf8")
    Session = sessionmaker(bind=engine)
    session = Session() 
    obj1 = [userinfo(name="xiao",age=20,work="IT"),userinfo(name="liucui",age=18,work="docker")]
    session.add_all(obj1)  # 添加多行数据,  add 表示添加一条数据
    session.commit()       # 提交
    session.close()

     查看数据

    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,Integer,String,ForeignKey
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker,relationship
    Base = declarative_base()
    class userinfo(Base):
        __tablename__ = "user_test"
        id = Column(Integer,primary_key=True,autoincrement=True)
        name = Column(String(32),nullable=True)
        age = Column(Integer,default=12,index=True)
        work = Column(String(32))
    
    
    engine = create_engine("mysql+pymysql://xiao:123123@42.193.197.149:3306/userinfo?charset=utf8")
    Session = sessionmaker(bind=engine)
    session = Session()
    #obj1 = [userinfo(name="xiao",age=20,work="IT"),userinfo(name="liucui",age=18,work="docker")]
    #session.add_all(obj1)  # 添加多行数据,  add 表示添加一条数据
    ret = session.query(userinfo).all()
    print(ret) # 返回每列为一个对象[<__main__.userinfo object at 0x000001F5D7EC9D30>, <__main__.userinfo object at 0x000001F5D7EC9580>]
    for row in ret:
        print(row.id,row.name,row.age,row.work)
    
    #session.commit()       # 提交
    session.close()

     where 条件查看

    ret = session.query(userinfo.id,userinfo.name).filter(userinfo.id > 1).all()
    print(ret) # 返回每列为一个对象[<__main__.userinfo object at 0x000001F5D7EC9D30>, <__main__.userinfo object at 0x000001F5D7EC9580>]
    for row in ret:
        print(row.id,row.name)
  • 相关阅读:
    java学习笔记-设计模式12(组合模式)
    Java神奇的装箱与拆箱
    博客得不到搜索引擎的收录!
    Java中E、T、K、V、N的含义
    【转】解决Ubuntu下Sublime Text 3无法输入中文
    【转】Windows和Ubuntu双系统,修复UEFI引导的两种办法
    30分钟学会正则表达式
    推荐一个android各种工具的墙内下载网站
    如何为Android Studio 添加快速启动方式【Linux】
    Linux 更改用户环境变量和所有用户环境变量
  • 原文地址:https://www.cnblogs.com/huxl1/p/15707434.html
Copyright © 2011-2022 走看看