Next, we will explain the Sqlalchemy framework. Here is another example.
Related reading: database framework of Python 3.x Sqlalchemy for SQlite operations
As follows:
This example is based on others' Code.
- _ Author _ ='Minggxu9'
- ImportSqlalchemy
- FromSqlalchemyImportCreate_engine
- Eng = create_engine ('Sqlite: //: memory :', Echo =True)
- Eng.exe cute ("Select 1"). Scalar ()
- FromSqlalchemy. ext. declarativeImportDeclarative_base
- Base = declarative_base ()
- ######################################## #################
- FromSqlalchemyImportJoin, Table, MetaData ,\
- Select, func ,\
- And _,\
- Column, ForeignKey ,\
- Integer, String, Text, Binary
- FromSqlalchemy. ormImportDeferred, mapper ,\
- Relationship, column_property ,\
- Object_session ,\
- Validates
- ######################################## #################
- Metadata = MetaData ()
- ######################################## #################
- ClassBook (Base ):
- _ Tablename __='Book'
- Book_id = Column (Integer, primary_key =True)
- Title = Column (String (200), Nullable =False)
- Summary = Column (String (2000))
- Excerpt = deferred (Column (Text ))
- Photo1 = deferred (Column (Binary), group ='Photos')
- Photo2 = deferred (Column (Binary), group ='Photos')
- Photo3 = deferred (Column (Binary), group ='Photos')
- ClassAddress (Base ):
- _ Tablename __='Address'
- Id = Column (Integer, primary_key =True)
- User_id = Column (Integer, ForeignKey ('User. id'))
- ClassUser (Base ):
- _ Tablename __='User'
- Id = Column (Integer, primary_key =True)
- Firstname = Column (String (50))
- Lastname = Column (String (50))
- # Fullname = column_property (firstname + ''+ lastname)
- # Address_count = column_property (
- # Select ([func. count (Address. id)]). \
- # Where (Address. user_id = id)
- #)
- Addresses = relationship ("Address")
-
- @ Validates('Address')
- DefValidate_address (Self, Key, address ):
- Assert '@' InAddress. email
- ReturnAddress
-
- @ Property
- DefFullname (Self):
- Return Self. Firstname +''+Self. Lastname
-
- @ Property
- DefAddress_count (Self):
- ReturnObject_session (Self).\
- Scalar (select ([func. count (Address. id)]). \
- Where (Address. user_id =Self. Id ))
- ######################################## #################
- Base. metadata. create_all (eng)
- # Ed1_user = User ('ed1', 'ed1 Jones ', 'ed1spassword ')
- # Ed2_user = User ('ed2', 'ed2 Jones ', 'ed2spassword ')
- # Print ("-----------------------")
- # From sqlalchemy. orm import Session
- # Ses = Session (bind = eng)
- # Ses. add (ed1_user)
- # Ses. add (ed2_user)
- # Ses. commit ()