> The only difference between my code and yours is that I am not using 
sessions. 

The Flask-Sqlalchemy package handles all the session stuff automatically in 
the background. The code you write is not interacting with the session 
explicitly, but it is utilizing the session implicitly.  

IMHO, the best way to troubleshoot these things is to create a standalone 
script like Lele Gaifax supplied for you above, and iterate fixes on that.

On Wednesday, April 5, 2023 at 8:12:52 AM UTC-4 nand...@gmail.com wrote:

> The only difference between my code and yours is that I am not using 
> sessions. Might it be the reason why my query is not working as expected? 
> Here is my query one more time:
> monthly_events = current_user.followed_events().filter(Event.event_date < 
> datetime.today().date()).filter(func.strftime('%m', Event.event_date) == 
> datetime.today().strftime('%m')).order_by(Event.timestamp.desc()) 
> Again, this is the problem the query is trying to solve. I want to know 
> the subscribed events (events that I am following) that took place in the 
> current month. This is irrespective of whether they took place 5 years ago, 
> or a year ago, so long as they took place in the current month.
>
> However, the query gives no events that took place in the current month, 
> yet I have events that indeed took place in April (the current month). The 
> current month is to be automated, which I have successfully accomplished 
> through *datetime.today().strftime('%m')*. 
>
> By breaking the query into sections, I was able to know where the problem 
> is. The section of the query: 
> *current_user.followed_events().filter(Event.event_date 
> < datetime.today().date())*gives all events that have passed (yesterday 
> and beyond). This part works correctly.
>
> The section: *current_user.followed_events().filter(Event.event_date < 
> datetime.today().date()).order_by(Event.timestamp.desc())*arranges these 
> past events in descending order and this section works correctly, as well.
>
> However, the part with problem is: .filter(func.strftime('%m', 
> Event.event_date) == datetime.today().strftime('%m'))where the aim is to 
> filter out events that took place in the current month, irrespective of the 
> year they took place.
>
> Note that I have imported the following modules from sqlalchemy import 
> funcand from datetime import datetimeat the top of the routes.py.
>
> The *event_date* field in the *models.py* is stored as a *db.DateTime* with 
> a *default = datetime.utcnow*. I am using Flask, with *SQLite* db, but 
> will change it to *Postgresql* later.
>
> I hope the information is enough, otherwise let me know if additional 
> information is needed.
> On Wed, Apr 5, 2023 at 10:21 AM James Paul Chibole <jpch...@gmail.com> 
> wrote:
>
>> Sorry, it is a type, it should actually be  .filter(func.strftime('%m', 
>> Event.event_date == datetime.today().strftime('%m')))
>>
>> Let me go through your latest response and will get back to you. Thank 
>> you for the prompt response.
>>
>> On Wed, Apr 5, 2023 at 10:16 AM Lele Gaifax <le...@metapensiero.it> 
>> wrote:
>>
>>> Nancy Andeyo <nand...@gmail.com> writes:
>>>
>>> > However, the part with problems is this one: 
>>> .filter(func.strftime('%m',
>>> > Event.event_date = datetime.today().strftime('%m'))) where the aim to
>>> > filter out events that will take place in the current month. This is 
>>> the
>>> > section that I posted, yet I needed to post the entire query for what 
>>> I am
>>> > intending to achieve is understood.
>>>
>>> I can't say if the typos are due to you rewriting the cide in these
>>> messages, or if instead they are effectively present in the real code,
>>> but also the above is not correct:
>>>
>>>   .filter(func.strftime('%m', Event.event_date = 
>>> datetime.today().strftime('%m')))
>>>
>>> This should raise a syntax error when evaluated by Python...
>>>
>>> For comparison, the following complete script works for me:
>>>
>>>   from datetime import date
>>>   from pprint import pprint
>>>
>>>   from sqlalchemy import create_engine
>>>   from sqlalchemy import func
>>>   from sqlalchemy.orm import Session
>>>
>>>   from sol.models import Tourney
>>>
>>>
>>>   engine = create_engine('sqlite:///development.db')
>>>   session = Session(engine)
>>>
>>>   q = session.query(Tourney)
>>>   q = q.filter(func.strftime('%m', Tourney.date) == 
>>> date.today().strftime('%m'))
>>>
>>>   pprint([(t.description, t.date) for t in q.limit(3).all()])
>>>
>>> and emits
>>>
>>>   [('2° Torneo', datetime.date(2001, 4, 1)),
>>>    ('7° Torneo', datetime.date(2004, 4, 24)),
>>>    ('7° Torneo', datetime.date(2005, 4, 30))]
>>>
>>> Hope this helps,
>>> ciao, lele.
>>> -- 
>>> nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
>>> real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
>>> le...@metapensiero.it  |                 -- Fortunato Depero, 1929.
>>>
>>> -- 
>>> SQLAlchemy - 
>>> The Python SQL Toolkit and Object Relational Mapper
>>>
>>> http://www.sqlalchemy.org/
>>>
>>> To post example code, please provide an MCVE: Minimal, Complete, and 
>>> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full 
>>> description.
>>> --- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "sqlalchemy" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/sqlalchemy/4oPfuzAjw48/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> sqlalchemy+...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/sqlalchemy/87pm8ier3i.fsf%40metapensiero.it
>>> .
>>>
>>
>>
>> -- 
>> *James Paul Chibole*
>>        -In the name of God-
>>
>> -- 
>> SQLAlchemy - 
>> The Python SQL Toolkit and Object Relational Mapper
>>  
>> http://www.sqlalchemy.org/
>>  
>> To post example code, please provide an MCVE: Minimal, Complete, and 
>> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>> description.
>> --- 
>>
> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>>
> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sqlalchemy+...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sqlalchemy/CA%2B9bh8dc1ph6UC49pqjVeVfg-DEo%2BE2vFxu0NCXoB9AonsWXtQ%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/sqlalchemy/CA%2B9bh8dc1ph6UC49pqjVeVfg-DEo%2BE2vFxu0NCXoB9AonsWXtQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/9a105ba0-a8b5-4a6b-b63c-48a2f5ccefcbn%40googlegroups.com.

Reply via email to