我们不要认为这颗行星上的一切都是理所当然的
检索数据
from datetime import date
from peewee import *
db = SqliteDatabase('people.db')
class Person(Model):
name = CharField()
birthday = DateField()
is_relative = BooleanField()
class Meta:
database = db
class Pet(Model):
owner = ForeignKeyField(Person, related_name='pets')
name = CharField()
animal_type = CharField()
class Meta:
database = db
"""-------------------------------------------------------------------------------------------------------"""
grandma = Person.select().where(Person.name == 'Grandma L.').get()
"""同上"""
grandma = Person.get(Person.name == 'Grandma L.')
"""
for person in Person.select():
print("人名:",person.name, person.is_relative)
query = Pet.select().where(Pet.animal_type == 'cat')
for pet in query:
print("宠物名:",pet.name, "主人名:",pet.owner.name)
"""
"""
query = (Pet.select(Pet, Person)
.join(Person)
.where(Pet.animal_type == 'cat'))
for pet in query:
print(pet.name, pet.owner.name)
"""
for pet in Pet.select().join(Person).where(Person.name == 'Bob'):
print(pet.name)
"""同上"""
uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15), is_relative=True)
for pet in Pet.select().where(Pet.owner == uncle_bob).order_by(Pet.name):
print(pet.name)
for person in Person.select().order_by(Person.birthday.desc()):
print(person.name, person.birthday)
"""-------------------------------------------------------------------------------------------------------"""
for person in Person.select():
print(person.name, person.pets.count(), 'pets')
for pet in person.pets:
print (' ', pet.name, pet.animal_type)
"""-------------------------------------------------------------------------------------------------------"""
d1940 = date(1940, 1, 1)
d1960 = date(1960, 1, 1)
query = (Person.select()
.where((Person.birthday < d1940) | (Person.birthday > d1960)))
for person in query:
print(person.name, person.birthday)
query = (Person
.select()
.where((Person.birthday > d1940) & (Person.birthday < d1960)))
for person in query:
print(person.name, person.birthday)
"""------------------------------------------------------"""
expression = (fn.Lower(fn.Substr(Person.name, 1, 1)) == 'g')
for person in Person.select().where(expression):
print(person.name)
"""连接数据库连接"""
db.close()