小编Cur*_*nir的帖子

为什么 Flask bool 查询参数总是评估为 true?

我的 Flask 应用程序中接受布尔查询参数的端点之一有一种奇怪的行为。无论我传递给它什么,例如asfsdfdortruefalse,它都被认为是 true 。只有留空它才会变成假的。

full_info = request.args.get("fullInfo", default=False, type=bool)
if full_info:
    # do stuff
Run Code Online (Sandbox Code Playgroud)

似乎任何输入都被认为是真实的。有没有什么方法可以使其与 Flask 定义类型的预期方式一起工作,或者我是否需要接受一个字符串并比较它?

python flask python-3.x

20
推荐指数
2
解决办法
2万
查看次数

MariaDB CURRENT_TIMESTAMP默认值

我正在尝试为用户注册设置一个数据库,并希望在其中有一个包含注册日期的列,默认情况下应该是当前时间.我试过运行这个查询:

CREATE TABLE `users` (
  <some stuff>
  `uRegDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
)
Run Code Online (Sandbox Code Playgroud)

但它不适用于MariaDB.有人有解决方案吗?

mysql default date mariadb

4
推荐指数
1
解决办法
1万
查看次数

CMake 使用 ECM 构建库

我正在尝试为使用 yocto 创建的嵌入式设备构建自定义 Linux 版本的库https://github.com/KDE/pulseaudio-qt 。yocto 生成的 SDK 不包含构建库所需的额外 cmake 模块。获取 SDK 的环境设置脚本后,我尝试在库上运行 cmake:

-- Could NOT find ECM (missing: ECM_DIR)                                                              
--                                                                                                    
 * ECM (required version >= 5.44.0), Extra CMake Modules., <https://kde.org/products/frameworks/>     

CMake Error at /opt/board_sdk/0.6.0/sysroots/x86_64-boardsdk-linux/usr/share/cmake-3.12/Modules/FeatureSummary.cmake:459 (message):                                                                       
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake                            
  run.                                                                                                
Call Stack (most recent call first):                                                                  
  CMakeLists.txt:9 (feature_summary) 
Run Code Online (Sandbox Code Playgroud)

之后我尝试手动安装 ECM 模块。它们最终位于/usr/share/ECM,因此我尝试在运行 cmake 之前将 ECM_DIR 设置为该位置:

export ECM_DIR=/usr/share/ECM
Run Code Online (Sandbox Code Playgroud)

但同样的错误仍然发生。有人可以帮我吗?此时我还没有深入研究 cmake。

c++ cmake

4
推荐指数
1
解决办法
4479
查看次数

goto的C用法

我有一个带有某种回调机制的状态机,函数是由任务运行器调用的。这背后是一个状态机,它有4种状态,有的相互排斥,有的可以组合,这就形成了一个相当复杂的规则集。如果尝试进行任何非法操作,其中一个函数应显示用户错误消息(printf此处为简单起见):

static int state1 = 0;
static bool switch2 = 1;

void do_stuff(int value){
    int errorCode = 0;
    if(state1 == 1){ 
        errorCode = -1;
        goto ERROR;
    }
    if(state1 == 2 && switch2)
    {
        errorCode = 2;
        goto ERROR;
    }


    printf("No error!");
    return;
ERROR:
    printf("%d", errorCode);
}
Run Code Online (Sandbox Code Playgroud)

这是我能想到的最短、最简洁的方法,但它一直被认为使用goto是一件坏事。有没有更好的方法来解决这个问题,或者这是稳定性和维护方面的最佳方法?

c goto

3
推荐指数
1
解决办法
158
查看次数

Python奇怪的行为继承类的列表

我正在构建一个语音识别系统,为此我为命令构建了一个接口.它们由主语,动词,形容词和通配符组成.我这样实现了它:

class IWord(object):
    strings = []

    def recognize(self, word):
        return word in self.strings

    def add_synonym(self, word):
        self.strings.append(word)


class Verb(IWord):
    def __init__(self, words):
        for word in words:
            self.add_synonym(word)


class Adjective(IWord):
    def __init__(self, words):
        for word in words:
            self.add_synonym(word)


class Object(IWord):
    def __init__(self, words):
        for word in words:
            self.add_synonym(word)


class WildCard(IWord):
    def recognize(self, word):
        return word is not None & word


class ICommand(object):
    words = []
    parameters = []
Run Code Online (Sandbox Code Playgroud)

但是我有两个继承自ICommand的类:

class Command1(ICommand):

    def __init__(self):
        self.words.append(Verb(['do']))
        self.words.append(Object(['some']))
        self.words.append(WildCard())

class Command1(ICommand):

    def __init__(self):
        self.words.append(Verb(['lorem'])) …
Run Code Online (Sandbox Code Playgroud)

python inheritance

1
推荐指数
1
解决办法
54
查看次数

Java Paho MQTT 检测重连

我正在使用适用于 Android 的 Paho MQTT 库,我的应用程序正在交换实时编辑数据。我想在应用程序与代理断开连接时禁用编辑文本,并在重新建立连接时启用它。

第一部分很简单,MqttCallback有一个connectionLost方法,但不能重新连接。另外,在调试IMqttActionListener连接方法时,我注意到重新连接时不会触发该事件。

所以我的问题是是否有任何方法可以检测重新连接?

java android mqtt

1
推荐指数
1
解决办法
595
查看次数

C++ int 枚举类 UB

我有一个enum看起来像这样:

enum class MY_TYPE : int32_t{
    UNKNOWN = 0,
    A = 101,
    B = 102,
    C = 103,
    D = 104,
    E = 105
};
Run Code Online (Sandbox Code Playgroud)

我想从和向它投射给定的值。

首先,能不能保证下面的代码不会诱发未定义的行为?

int32_t library_func(int* tp){ *tp = 275; return 0;}

int main(){
    MY_TYPE d = static_cast<MY_TYPE>(224);
    library_func(reinterpret_cast<int*>(&d));
    std::cout << "d is " << static_cast<int>(d);
}
Run Code Online (Sandbox Code Playgroud)

如果我投射的值不在 的值范围内,它是 UBMY_TYPE吗?关于这一点,我发现了以下问题:如果您向枚举类 static_cast 无效值会发生什么?

This prints 275 as expected. Do I understand the answer correctly that casting any value which fits in the enum …

c++ undefined-behavior c++11

0
推荐指数
1
解决办法
107
查看次数

标签 统计

c++ ×2

python ×2

android ×1

c ×1

c++11 ×1

cmake ×1

date ×1

default ×1

flask ×1

goto ×1

inheritance ×1

java ×1

mariadb ×1

mqtt ×1

mysql ×1

python-3.x ×1

undefined-behavior ×1