小编vog*_*vog的帖子

如何在python中从sqlite3数据库中获取数据行数

我试图获取从python中的sqlite3数据库返回的行数,但似乎该功能不可用:

想想php mysqli_num_rows()mysql

虽然我设计了一种方法,但它很尴尬:假设一个类执行sql并给我结果:

# Query Execution returning a result
data = sql.sqlExec("select * from user")
# run another query for number of row checking, not very good workaround
dataCopy = sql.sqlExec("select * from user")
# Try to cast dataCopy to list and get the length, I did this because i notice as soon 
# as I perform any action of the data, data becomes null
# This is not too good as someone else …
Run Code Online (Sandbox Code Playgroud)

python sqlite

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

如何在浏览器中通过POST请求加载外来图像?

我的Web应用程序(HTML5 + JavaScript)需要显示由外部Web服务生成的PNG图像.

但是,该Web服务支持POST请求.(更确切地说,它确实提供了GET请求,但我必须传输大的参数,因此GET URL变得太长.)

此外,Web服务具有与Web应用程序不同的域,并且不提供正确的CORS头,因此Ajax(XMLHTTPRequest)不起作用.

我的Web应用程序是否仍然可以通过POST请求加载和显示外部图像?

我要求的解决方案不同于以下令人讨厌的变通方法,这些解决方案对我来说是众所周知的:

  • 没有设置翻译请求的本地代理(并且还规避了同源策略)
  • 没有使用一些陌生人的远程代理
  • 不使用Flash
  • 不使用Java Applets
  • 不使用特定于操作系统的功能,如ActiveX控件

但是,无法使用Internet Explorer的解决方案是可以接受的.即使是Firefox或Chrome特定的解决方案也受到赞赏.

javascript ajax post html5 image

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

如何将POST数据流式传输到Python请求中?

我正在使用Python requests库发送POST请求.生成POST数据的程序部分可以写入任意类文件对象(输出流).

我怎样才能使这两个部分合适?

我原本预计会requests为这个用例提供一个流媒体接口,但似乎没有.它只接受data从中读取的类文件对象作为参数.它不提供我可以编写的类文件对象.

这是Python HTTP库的基本问题吗?

目前为止的想法:

似乎最简单的解决方案是fork()让请求库与POST数据生成器通信管道.

有没有更好的办法?

或者,我可以尝试使POST数据生成器复杂化.但是,那个解析一个XML流(来自stdin)并生成一个新的XML流用作POST数据.然后我反过来也有同样的问题:XML序列化程序库想要写入类似文件的对象,我不知道XML序列化程序提供类似文件的对象的任何可能性,其他人可以从中读取.

我也知道最干净,经典的解决方案是coroutines,它通过generator(yield)在Python中有所提供.POST数据可以通过(yield)而不是类似文件的对象流式传输,并使用拉式解析器.

但是,是否可以requests接受POST数据的迭代器?是否有一个XML序列化器可以很容易地与yield?结合使用?

或者,是否有任何包装器对象将写入类似文件的对象转换为生成器,和/或提供包装迭代器的类文件对象?

python xml http generator python-requests

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

为什么 Python 不允许从 ZIP 文件中导入 `*.so` 文件?

为什么 Python 不允许从 ZIP 文件导入 *.so 文件?

文档(https://docs.python.org/2/library/zipimport.html)非常清楚:

ZIP 存档中可能存在任何文件,但只有文件 .py 和 .py[co] 可用于导入。动态模块(.pyd、.so)的 ZIP 导入是不允许的。

但是文档没有说明这种奇怪限制的任何原因。是因为在 Python 中通常不鼓励从 ZIP 文件导入吗?还是因为安全原因?如果有,是哪些?官方有没有关于这个的说法?

python zip python-import

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

“构造函数”的 OCaml 命名约定是什么?

一个 OCaml 模块通常至少包含一个抽象类型,其惯用名称是t. 此外,通常有一个函数可以构造该类型的值。

这通常/惯用的名称是什么?

StdLib 在这里不一致。例如:

  • Array.make一个已弃用的函数Array.create。那么该函数应该命名为make?
  • 另一方面,有Buffer.create但没有Buffer.make。那么该函数应该命名为create?

ocaml conventions naming-conventions

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

如果Make规则失败,则删除目标文件的优雅方法

我的Makefile中有一条规则大致如下所示:

target_file: src_file
        some_tool src_file > target_file
Run Code Online (Sandbox Code Playgroud)

(当然,在现实中我使用$@$<,但对于这个问题,我更喜欢一个更明确的风格.)

问题是target_fileshell始终使用新的时间戳创建,即使some_tool失败也是如此.在这种情况下,target_file存在空,即使我修复了底层问题,在我手动删除target_file或触摸之前也不会重建它src_file.

此外,some_tool只写入标准输出,所以我不能通过更清洁的方法来解决这个问题some_tool ... -o target_file.

我目前的方法是删除

target_file: src_file
        some_tool src_file > target_file || rm -f target_file
Run Code Online (Sandbox Code Playgroud)

但是,这有一个缺点,即Make如果some_tool失败则不会注意到,因为在那种情况下rm接管并返回exitcode 0(成功).

另一种方法可能是:

target_file: src_file
        some_tool src_file > target_file.tmp
        mv target_file.tmp target_file
Run Code Online (Sandbox Code Playgroud)

但是这种代码很乏味,而且在失败时会留下令人讨厌的文件target_file.tmp.

有没有更优雅的方法来解决这个问题?

shell makefile stdout gnu-make redirectstandardoutput

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

如何在不运行PostgreSQL服务器的情况下初始化PostgreSQL数据库

在初始化脚本中,我想初始化PostgreSQL目录,但在此阶段不需要(也不想要)正在运行的PostgreSQL服务器.

如果我只是创建集群(作为用户postgres),这将是一个明智的做法:

initdb -D ...
Run Code Online (Sandbox Code Playgroud)

但是,我还需要创建PostgreSQL角色,创建数据库并添加一些扩展(也作为用户postgres):

createuser someuser
createdb -O someuser somedb
echo 'CREATE EXTENSION xyz;' | psql somedb
Run Code Online (Sandbox Code Playgroud)

后面的命令需要运行PostgreSQL服务器.所以整件事情变得非常混乱:

initdb -D ...

# Start PostgreSQL server in background
... &

# Wait in a loop until PostgreSQL server is up and running
while ! psql -f /dev/null template1; do
    sleep 0.5
done

createuser someuser
createdb -O someuser somedb
echo 'CREATE EXTENSION xyz;' | psql somedb

# Kill PostgreSQL server
kill ...

# Wait until the …
Run Code Online (Sandbox Code Playgroud)

database postgresql initialization reliability

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

与 Python 的“with”语句(资源的自动释放)对应的 OCaml 是什么?

与 Python 的“with”语句对应的 OCaml 是什么?

with open('test.txt', 'r') as f:
    # Do stuff with f
# At this point, f will always be closed, even in case of exceptions
Run Code Online (Sandbox Code Playgroud)

即:OCaml中安全确保某个资源(打开的文件、数据库连接、HTTP 连接等)在某个时间点总是被释放的首选方式是什么?等待垃圾收集器在这里是没有选择的,异常不应该阻止资源被释放。

当然,在 OCaml 中,您始终可以使用 try-finally 并“手动”关闭文件,就像在 Python 中一样。但是,这种代码容易​​出错。这就是 Python 引入“with”语句的原因。什么 OCaml 习惯用法可以使这种代码更易于阅读且不易出错?

请注意,这个问题与在 OCaml 中模拟 try-with-finally的问题非常不同,因为这是更进一步的一步:我不只是想在 OCaml 中模拟 try-finally!(顺便说一下[%finally ...]Lwt做得很好。)我想更进一步,首先不需要编写那些 finally 子句——就像在 Python 中可以做到的那样。

还要注意,这个问题不是关于实现细节,而是关于习惯用法:所有可能的设计和解决方案中哪些在 OCaml 社区中获得了一些牵引力并被普遍接受?

python ocaml raii with-statement

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

奇怪的临时阵列损坏

我试图创建一个排列,当我完成我的问题时,我收到这个奇怪的错误:

Stack around the variable "temp" was corrupted
Run Code Online (Sandbox Code Playgroud)

变量的片段在嵌套的for循环中:

for(int i = 0 ; i < str_length ; i++)
{
    for(int j = 0 ; j < str_length ; j++)
    {
        char temp[1];

        temp[1] = text[i];
        text[i] = text[j];
        text[j] = temp[1];

        cout << text << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

text作为字符串在for循环之外初始化,当我将temp [1]变为char或int时,我得到相同的错误.该程序工作正常,但我担心为什么我收到此错误,有谁知道为什么?

c++ arrays corrupt

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