Dieses Mal werde ich die Methode von ** Update ** mit ** SQLAlchemy ** schreiben.
Aktualisieren Sie den Datensatz mit der ID == 2 (name = "Seiichi Sugino", kana = 'Sugi no Seiichi').
sqlalchemy_update.py
# -*- coding:utf-8 -*-
import sqlalchemy
import sqlalchemy.orm
import sqlalchemy.ext.declarative
Base = sqlalchemy.ext.declarative.declarative_base()
class Student(Base):
__tablename__ = 'students'
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String(20))
kana = sqlalchemy.Column(sqlalchemy.String(40))
def main():
url = 'mysql+pymysql://root:@localhost/test_db?charset=utf8'
engine = sqlalchemy.create_engine(url, echo=True)
#Erstellen Sie eine Sitzung
Session = sqlalchemy.orm.sessionmaker(bind=engine)
session = Session()
#Löschen Sie alle Daten
session.query(Student).delete()
#Registrieren Sie mehrere Daten gleichzeitig
session.add_all([
Student(id=1, name='Yu Ishizaka', kana='Yu Ishizaka'),
Student(id=2, name='Seiichi Sugino', kana='Sugi no Seiichi'),
Student(id=3, name='Yuko Kuwata', kana='Yuko Kuwata'),
Student(id=4, name='Ai Kurihara', kana='Kurihara Ai'),
])
# id==Aktualisieren Sie 2 Daten
student = session.query(Student).filter(Student.id==2).first()
student.name = 'Hitoshi Sakuma'
student.kana = 'Sakuma Jin'
#Geben Sie alle Daten in der Tabelle aus
print_all_students(session)
#Daten bestätigen
session.commit()
#Eine Funktion, die alle Daten in der Tabelle ausgibt
def print_all_students(session):
students = session.query(Student).all()
for student in students:
print('%d, %s %s' % (student.id, student.name, student.kana))
if __name__ == '__main__':
main()
Update hat nichts Besonderes. Es genügt zu sagen, dass es keine Aktualisierungsmethode gibt und Sie das aus der Sitzung erhaltene Objekt direkt bedienen können.
Ich habe mir vielleicht nicht die Mühe gemacht, einen Artikel zu schreiben, aber ich habe über Löschen und Ändern geschrieben, also lasse ich ihn als Bonus.
Wie lösche ich mit SQLAlchemy? Wie man mit SQLAlchemy verändert?
Recommended Posts