Explain why SQLALCHEMY use the relalationship () function when creating classes of objects connected to the database tables, if the external keys can be specified when creating tables-tables using the function ForeignKey () when determining the column?
Or relationship () makes sense when using a declarative model when one class is determined for the table and the associated object?
Specify examples where it is shown as a class having fields defined through relationship () .
Answer 1, Authority 100%
Example from the author Pycon2013 ZZZeek
Create two tables
class user (base): __TABLENAME__ = 'User' id = column (integer, primary_key = true) Name = Column (String) FullName = Column (String) Def __repr __ (Self): Return "& lt; User (% R,% R) & gt;" % ( Self.name, self.fullname. ) Class Address (Base): __Tablename__ = 'Address' id = column (integer, primary_key = true) email_address = column (String, NULLABLE = FALSE) user_id = column (Integer, ForeignKey ('user.id')) user = relationship ("user", backref = "addresses")
My_Address_obj.user We get the user object, and
My_user_obj.Addresses will return the list of objects of all addresses linking to
User . Thus,
relalationship connects objects, and not just returns the value
Example from Presentation:
# while the user has no "addresses" jack = user (name = 'jack', fullname = 'jack bean') jack.addresses # blank list # Add addresses to him jack.addresses = [ Address (email_address='[email protected] '), Address (email_address='[email protected] '), Address (email_address='[email protected] '), ]
i.e. You operate with objects, not idids