Tôi vừa mới có cơ hội xem xét khung công tác web2py và mặc dù tôi có một số kinh nghiệm trước đó với Django và hơn thế nữa với Python đơn giản, tôi không thể hiểu được hệ thống truy vấn mà web2py sử dụng.Các biểu thức truy vấn web2py hoạt động như thế nào?
Hãy lấy ví dụ này từ web2py book
db = DAL('sqlite://storage.db')
myquery = (db.mytable.myfield > 'A')
myset = db(myquery)
rows = myset.select()
for row in rows:
print row.myfield
In a SO comment web2py tác giả nói rằng (db.mytable.myfield > 'A')
không đánh giá là True/False trực tiếp và nó thực sự đánh giá cho mỗi hàng tại thời điểm lựa chọn. Tôi hiểu đây là những gì cho phép các biểu thức này được sử dụng làm đối tượng truy vấn và thậm chí được kết hợp.
Tôi đã cố gắng tìm câu trả lời trực tuyến nhưng không thể, vì vậy đây là câu hỏi của tôi: Các biểu thức truy vấn đó không được đánh giá đúng/sai như thế nào? Tại sao giá trị của myquery là không, nói, True? Tính năng Python nào mà tôi có thể bị thiếu cho phép tính năng này hoạt động?