-
# -*- 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)