[英]Python String with date.today() returning with TypeError
[英]Argument Error while trying to filter by date.today() in sqlachemy python
能夠打印出 date.today() 的日期,但是當我將它與 sqlalchemy 一起使用時,它的拋出屬性錯誤會告訴一個約束是預期的
def daily_Fitness() :
result = Fitness.query.filter_by ( date.today () )
for result in result :
result.append ( {"Yoga" : Fitness.activity_type_1 , "Jogging" : Fitness.activity_type_2 ,
"Walking" : Fitness.activity_type_2 ,
"time" : Fitness.fitness_time ,
"comments" : Fitness.comments
} )
return result
Traceback (most recent call last):
File "C:\Users\siveg\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 124, in _init_items
spwd = item._set_parent_with_dispatch
AttributeError: 'datetime.date' object has no attribute '_set_parent_with_dispatch'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:/Users/siveg/gitProject/python-project-template/python-project-template/application/models.py", line 10, in <module>
class Food(db.Model) :
File "C:/Users/siveg/gitProject/python-project-template/python-project-template/application/models.py", line 16, in Food
date=db.Column (date.today(), unique=True , nullable=False )
File "C:\Users\siveg\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 1636, in __init__
self._init_items(*args)
File "C:\Users\siveg\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py", line 126, in _init_items
util.raise_(
File "C:\Users\siveg\anaconda3\lib\site-packages\sqlalchemy\util\compat.py", line 211, in raise_
raise exception
sqlalchemy.exc.ArgumentError: 'SchemaItem' object, such as a 'Column' or a 'Constraint' expected, got datetime.date(2021, 7, 27)
假設為當前日期獲取該特定表的數據
Able to successfully fetch the data entered from the table as specified
{"Yoga" : Fitness.activity_type_1 , "Jogging" : Fitness.activity_type_2 ,
"Walking" : Fitness.activity_type_2 ,
"time" : Fitness.fitness_time ,
"comments" : Fitness.comments}
filter_by
需要關鍵字參數,其關鍵字是列名,並且整個值是要過濾的。
所以在這種情況下,如果你有一個像這樣的表:
from datetime import date
class FitnessRoutine(Base):
__tablename__ = 'fitness_routines'
id = Column(Integer, primary_key=True, index=True)
scheduled_on = Column(Date, default=date.today)
您將通過filter_by
列的名稱scheduled_on
:
routines_for_today = FitnessRoutine.query.filter_by(scheduled_on=date.today())
https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.filter_by
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.