-
# -*- coding: utf-8 -*-
-
from sqlalchemy.ext.declarative import declarative_base
-
from sqlalchemy import Column # 列
-
from sqlalchemy import Integer, String # 属性
-
-
Base = declarative_base() # django models
-
-
# 建立表
-
class User(Base):
-
__tablename__ = 'user'
-
id = Column(Integer, primary_key=True, autoincrement=True)
-
name = Column(String(32), index=True, name='名字')
-
-
-
# 数据库链接
-
from sqlalchemy import create_engine
-
engine = create_engine("mysql+pymysql://root:redhat@192.168.32.71:3306/my_sql?charset=utf8")
-
-
# 去engine数据库中建立全部继承Base的表
-
Base.metadata.create_all(engine)
-
# -*- coding: utf-8 -*-
-
# 单表查询
-
from sqlalchemy.orm import sessionmaker
-
from SQLAlchemy.create import engine, User
-
Session = sessionmaker(engine)
-
db_session = Session()
-
-
# ---基本查询
-
# select * from name
-
user_list = db_session.query(User)
-
print(user_list) # SELECT user.`名字` AS `user_名字`, user.id AS user_id FROM user
-
-
# ---------------- 全部数据 ------------------
-
user_list = db_session.query(User).all() # [obj, obj]
-
for usr in user_list:
-
print(usr.name)
-
-
# ---------------- 一条数据 ------------------
-
user = db_session.query(User).first() # obj
-
print(user.name)
-
-
-
# ---------------- 带条件查询 ------------------
-
# --- filter
-
user_list = db_session.query(User).filter(User.id==2).all() # [obj, obj]
-
print(user_list)
-
-
user_list = db_session.query(User).filter(User.id >= 1).all() # [obj, obj]
-
for user in user_list:
-
print(user.id) # 按照id排序,由于添加是id
-
-
# --- filter_by
-
user = db_session.query(User).filter_by(id=2).first() # obj
-
print(user)
-
-
# --- 扩展-查看sql语句
-
sql = db_session.query(User).filter(User.id >= 1)
-
print(sql)
-
"""
-
SELECT user.`名字` AS `user_名字`, user.id AS user_id
-
FROM user
-
WHERE user.id >= %(id_1)s
-
"""
-
# -*- coding: utf-8 -*-
-
from sqlalchemy.ext.declarative import declarative_base
-
from sqlalchemy import Column # 列
-
from sqlalchemy import Integer, String, ForeignKey # 属性
-
from sqlalchemy import create_engine
-
from sqlalchemy.orm import relationship #
-
-
Base = declarative_base() # django models
-
-
class Student(Base):
-
__tablename__ = 'student'
-
id = Column(Integer, primary_key=True)
-
name = Column(String(32))
-
school_id = Column(Integer,ForeignKey("school.id")) # 外键关系 Fk
-
-
# 反向光系(若是我想从Student看到School的信息,直接下下面方法),Student.stu2sch
-
#若是School想拿Student的信息 那就只要School.backref里面的值, School.stu_sch
-
stu2sch = relationship("School", backref="stu_sch")
-
-
class School(Base):
-
__tablename__ = 'school'
-
id = Column(Integer, primary_key=True)
-
name = Column(String(32))
-
-
-
-
engine = create_engine("mysql+pymysql://root:redhat@192.168.32.71:3306/my_sql?charset=utf8")
-
-
# 去engine数据库中建立全部继承Base的表
-
Base.metadata.create_all(engine)