flask中filter_by与filter区别

本文深入探讨了使用SQLAlchemy框架进行数据库操作时,如何通过filter_by和filter方法实现精确和全局查询。具体示例展示了如何指定ID进行查询,以及如何确保查询来源正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

filter_by表内部精确查询

User.query.filter_by(id=4).first()

filter 全局查询 id必须指明来源于那张表User

User.query.filter(User.id==4).first()
在TSMaster中以下函数的各语句分别有什么作用// GEN BLOCK BEGIN Include #define TSMP_IMPL #include "TSMaster.h" #include "MPLibrary.h" #include "Database.h" #include "TSMasterBaseInclude.h" #include "Configuration.h" // GEN BLOCK END Include // CODE BLOCK BEGIN Timer FlashTimer MTAw // 定时器文档 "FlashTimer" TMPTimerMS FlashTimer; // CODE BLOCK END Timer FlashTimer // CODE BLOCK BEGIN Global_Definitions bool SinePos = true; // 初始状态设为正相位 // CODE BLOCK END Global_Definitions // CODE BLOCK BEGIN On_Var_Change On_Control_HeadLight Q29udHJvbC5IZWFkTGlnaHQsLTE_ // 变量变化事件 "On_Control_HeadLight" 针对变量 "Control.HeadLight" [On Written] void on_var_change_On_Control_HeadLight(void) { try { // 变量 = Control.HeadLight s32 s; app.get_system_var_int32("Control.HeadLight", &s); com.can_rbs_set_signal_value_by_address("0/EasyCAN/Gateway/LightState/HeadLight",s); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Var_Change On_Control_HeadLight // CODE BLOCK BEGIN On_Var_Change On_Control_HazardLight Q29udHJvbC5IYXphcmRMaWdodCwtMQ__ // 变量变化事件 "On_Control_HazardLight" 针对变量 "Control.HazardLight" [On Written] void on_var_change_On_Control_HazardLight(void) { try { // 变量 = Control.HazardLight s32 s; app.get_system_var_int32("Control.HazardLight", &s); com.can_rbs_set_signal_value_by_address("0/EasyCAN/Gateway/LightState/FlashLight",s); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Var_Change On_Control_HazardLight // CODE BLOCK BEGIN On_Timer NewOn_Timer1 Rmxhc2hUaW1lcg__ // 定时器触发事件 "NewOn_Timer1" for Timer FlashTimer void on_timer_NewOn_Timer1(void) { try { // 定时器 = FlashTimer double s1; com.can_rbs_get_signal_value_by_address("0/EasyCAN/Cluster/LightState/HeadLight",&s1); double s2; com.can_rbs_get_signal_value_by_address("0/EasyCAN/Cluster/LightState/FlashLight",&s2); s32 s; app.get_system_var_int32("Light.LightStatus", &s); int flash=0; if((int)s2==1) { if(s>=2) flash = 0; else flash = 1; } s = flash*2 + s1; log("light status is %d",s); app.set_system_var_int32("Light.LightStatus", s); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Timer NewOn_Timer1 // CODE BLOCK BEGIN On_Start NewOn_Start1 // 启动事件 "NewOn_Start1" void on_start_NewOn_Start1(void) { try { // 程序启动事件 FlashTimer.start(); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Start NewOn_Start1 // CODE BLOCK BEGIN On_Stop NewOn_Stop1 // 停止事件 "NewOn_Stop1" void on_stop_NewOn_Stop1(void) { try { // 程序停止事件 FlashTimer.stop(); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Stop NewOn_Stop1 // CODE BLOCK BEGIN On_CAN_Rx TestControl MCwtMSwxODE4 // CAN报文接收事件 "TestControl" 针对标识符 = 0x71A void on_can_rx_TestControl(const TCAN* ACAN) { try { // 针对标识符 = 0x71A // if (ACAN->FIdxChn != CH1) return; // if you want to filter channel TTestControl_1 TestControl_1; TestControl_1.init(); // 在使用此结构体前调用这段初始化代码 TestControl_1.FCAN = *ACAN; // 若是在回调函数中,请用ACAN数据赋值FCAN s32 v = TestControl_1.DemoEnable; app.set_system_var_int32("Control.DemoEnable", v); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_CAN_Rx TestControl // CODE BLOCK BEGIN On_Var_Change On_Control_Ignition Q29udHJvbC5JZ25pdGlvbiwtMQ__ // 变量变化事件 "On_Control_Ignition" 针对变量 "Control.Ignition" [On Written] void on_var_change_On_Control_Ignition(void) { try { // 变量 = Control.Ignition s32 v; app.get_system_var_int32("Control.Ignition", &v); com.can_rbs_set_signal_value_by_address("0/EasyCAN/Gateway/Ignition_Info/StarterKey",v); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Var_Change On_Control_Ignition // CODE BLOCK BEGIN On_Var_Change On_Control_EngSpeed Q29udHJvbC5FbmdTcGVlZCwtMQ__ // 变量变化事件 "On_Control_EngSpeed" 针对变量 "Control.EngSpeed" [On Written] void on_var_change_On_Control_EngSpeed(void) { try { // 变量 = Control.EngSpeed s32 v; app.get_system_var_int32("Control.EngSpeed", &v); if(v<0) v= -v; com.can_rbs_set_signal_value_by_address("0/EasyCAN/Engine/EngineData/EngSpeed",v); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Var_Change On_Control_EngSpeed // CODE BLOCK BEGIN On_Shortcut 前照灯 ODE_ // 按键事件 "前照灯" 快捷键 = Q void on_shortcut_前照灯(const s32 AShortcut) { try { // 按键事件 = Q s32 v; app.get_system_var_int32("Control.HeadLight",&v); v = (v == 0) ? 1 : 0; app.set_system_var_int32("Control.HeadLight",v); com.can_rbs_set_signal_value_by_address("0/EasyCAN/Gateway/LightState/HeadLight",v); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Shortcut 前照灯 // CODE BLOCK BEGIN On_Shortcut 危险灯 ODc_ // 按键事件 "危险灯" 快捷键 = W void on_shortcut_危险灯(const s32 AShortcut) { try { // 按键事件 = W s32 v; app.get_system_var_int32("Control.HazardLight",&v); v = (v == 0) ? 1 : 0; app.set_system_var_int32("Control.HazardLight",v); com.can_rbs_set_signal_value_by_address("0/EasyCAN/Gateway/LightState/HazardLight",v); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END On_Shortcut 危险灯 // CODE BLOCK BEGIN Step_Function NQ__ // 主step函数,执行周期 5 ms void step(void) { try { // 周期 = 5 ms s32 v1; app.get_system_var_int32("Control.carEnable", &v1); if(v1==0) return; app.set_system_var_int32("Control.Ignition", 1); s64 t64; double t; app.get_timestamp(&t64); t = t64 / 1000000.0 / 5; double v = sin(t)*3000; bool CurPos = v>0?true:false; if(!CurPos) v = -v; if(!CurPos == SinePos) { s32 hstatus; app.get_system_var_int32("Control.HeadLight", &hstatus); app.set_system_var_int32("Control.HeadLight", hstatus==0?1:0); if(SinePos) { s32 fstatus; app.get_system_var_int32("Control.HazardLight", &fstatus); app.set_system_var_int32("Control.HazardLight", fstatus==1?0:1); } } SinePos = CurPos; app.set_system_var_double("Control.EngSpeed", v); double baseTemp=70.0; double tempFactor=0.015*v; double engTemp = baseTemp + tempFactor; com.can_rbs_set_signal_value_by_address("0/EasyCAN/Engine/EngineData/EngTemp",engTemp); } catch (...) { log_nok("CRASH detected"); app.terminate_application(); }} // CODE BLOCK END Step_Function
最新发布
07-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值