小编Hal*_*own的帖子

使用Flask上传多个文件

有没有办法用Flask接收多个上传的文件?我尝试过以下方法:

<form method="POST" enctype="multipart/form-data" action="/upload">
  <input type="file" name="file[]" multiple="">
  <input type="submit" value="add">
</form>
Run Code Online (Sandbox Code Playgroud)

然后打印出以下内容request.files['file']:

@app.route('/upload', methods=['POST'])
def upload():
  if not _upload_dir:
    raise ValueError('Uploads are disabled.')

  uploaded_file = flask.request.files['file']
  print uploaded_file
  media.add_for_upload(uploaded_file, _upload_dir)
  return flask.redirect(flask.url_for('_main'))
Run Code Online (Sandbox Code Playgroud)

如果我上传多个文件,它只打印集合中的第一个文件:

<FileStorage: u'test_file.mp3' ('audio/mp3')>  
Run Code Online (Sandbox Code Playgroud)

有没有办法使用Flask的内置上传处理接收多个文件?谢谢你的帮助!

python file-upload flask

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

Haskell中的程序设计:如何在没有可变性的情况下进行模拟

我有一个关于设计我正在Haskell中工作的程序的最佳方法的问题.我正在写一个物理模拟器,这是我在标准命令式语言中做过的事情,通常主要的方法看起来像:

while True:
  simulationState = stepForward(simulationState)
  render(simulationState)
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Haskell中做类似的事情.我有一个函数step :: SimState -> SimState和一个display :: SimState -> IO ()使用HOpenGL来绘制模拟状态的函数,但我不知道如何在各种"循环"中执行此操作,因为我可以提出的所有解决方案都涉及某种类型可变性 当谈到Haskell时,我有点像菜鸟,所以我完全有可能错过了一个非常明显的设计决定.此外,如果有一个更好的方法来构建我的整个程序,我会很高兴听到它.

提前致谢!

simulation haskell

23
推荐指数
3
解决办法
4482
查看次数

是否有命令停止Common Lisp中的解释器?

我正在寻找一个表达式,它将导致解释器在被评估时退出.

我发现了许多特定于实现的但没有在HyperSpec中,我想知道是否有任何我没有看到规范中定义的.我发现它(quit)被CLISP和SLIME (exit)都认可,并且只有CLISP才能识别,但是我找不到任何参考其中任何一个的文档.

lisp common-lisp

19
推荐指数
4
解决办法
8134
查看次数

为什么Python的队列在qsize()中返回一个近似大小?

在qsize()的文档中,它说:返回队列的大致大小.

为什么它不能只返回此队列的确切大小?我理解Queue可能被多个线程访问,但是此刻我调用该函数我认为仍然可以返回该时刻的确切大小.

python multithreading

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

在Quicklisp中禁止"加载"输出

有没有办法让quicklisp加载库而不发送:

To load "drakma":
  Load 1 ASDF system:
    drakma
; Loading "drakma"
Run Code Online (Sandbox Code Playgroud)

标准出来?我已经尝试添加:verbose nil:explain nil参数ql:quickload(这是我现在加载库的方式),但似乎这些是默认值 - 打开它们只会增加输出量.

谢谢你的帮助!

common-lisp quicklisp

11
推荐指数
3
解决办法
951
查看次数

NSLog上的EXC_BAD_ACCESS没有字符串格式

我在以下代码行中收到EXC_BAD_ACCESS(或malloc错误):

NSLog(@"Points:");  
Run Code Online (Sandbox Code Playgroud)

这对我来说没有任何意义,因为它应该访问一个字符串常量而不是别的.它通常是一个EXC_BAD_ACCESS,但它偶尔会出现以下错误(在同一行):

Annotate23D(50572,0xac6bb2c0) malloc: *** error for object 0x7051004: incorrect checksum for freed object - object was probably modified after being freed.  
Run Code Online (Sandbox Code Playgroud)

malloc错误的堆栈跟踪(我很难从错误的访问错误中获取完整的错误)是:

#0  0x960e7c97 in malloc_error_break ()
#1  0x960a94ce in szone_error ()
#2  0x960a954e in free_list_checksum_botch ()
#3  0x960afec0 in small_malloc_from_free_list ()
#4  0x960b124c in szone_malloc_should_clear ()
#5  0x960b166b in szone_malloc ()
#6  0x960e7962 in malloc_zone_malloc ()
#7  0x960e8882 in malloc ()
#8  0x020e5837 in uhash_hashUChars ()
#9  0x020e5c01 in uhash_setResizePolicy ()
#10 0x020e5ca5 in uhash_init ()
#11 …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch memory-management objective-c objective-c++

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

在Python中将字符串截断为特定字节数

如何将字符串截断为不超过 50 个字节?

\n\n
a = 'asdfzx\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94awelkjawletjawetr\xeb\xb0\xa9\xea\xb0\x91\xec\x8a\xb5\xeb\x8b\x88\xeb\x8b\xa4.dlgawklejtwgasdgsdfgd\nsdfasdfsdafa\xea\xb6\x81\xea\xb8\x88\xed\x95\xb4\xec\x9a\x94rewgargasregawergedrhsedhesrdhrthdrfjydjdrktydjdyj'\nmax = 50byte\na = max(a)\n
Run Code Online (Sandbox Code Playgroud)\n

python string

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

是否在ConcurrentModificationException之后保证Java集合处于有效的可用状态?

我正在使用即时模式GUI模式编写GUI应用程序,并且UI在独立于引擎的线程上运行,该引擎为应用程序的实际功能提供了动力。GUI线程最终会遍历引擎线程在概念上“拥有”的许多对象列表,并且这些列表很少发生更改。GUI线程是vsync的,这意味着它以大约60Hz的频率运行,而引擎线程以大约200Hz的频率运行。

有时,UI中的操作会更改引擎中集合的内容,并且我有一个消息传递系统将Runnables发布到引擎线程中以执行这些突变,以确保这些突变不会与引擎中发生的冲突发动机。这样,我可以确保引擎始终看到一致的数据视图,这对于我的应用程序非常重要。

但是,由于引擎负责所有数据突变,因此有时会发生这样的情况:引擎在迭代GUI时更改了集合的内容,并且由于这些集合是标准Java集合,因此可以预测并正确地抛出ConcurrentModificationException。我可以想到一些高级方法来解决此问题:

  1. 通过使用同步集合或读写锁来锁定
  2. 对GUI线程读取的数据进行双缓冲,并在完成绘制框架后让GUI线程翻转双缓冲
  3. 忽略CME并中止绘制其余帧,这将为发生“不良”突变的帧绘制部分信息,然后继续进行下一帧

锁定会带来很大的性能损失,虽然GUI有时会在等待从引擎线程获取锁定时停滞是可以的,但对于引擎线程而言,以一致的速度运行非常重要,甚至R / W锁定会导致发动机螺纹失速。双缓冲具有显着的复杂性,因为GUI在每个帧上读取大量数据。

我为您提供所有这些背景知识,因为我知道选项3很难看,而且我的问题在某种意义上是“不合适的问题”。Javadoc ConcurrentModificationException甚至说:

请注意,不能保证快速故障行为,因为通常来说,在存在不同步的并发修改的情况下,不可能做出任何严格的保证。快速失败操作会尽最大努力抛出ConcurrentModificationException。因此,编写依赖于此异常的程序的正确性是错误的:ConcurrentModificationException应该仅用于检测错误。

但!对于CME可能损坏的单个框架的GUI的正确性,我并不担心。我只关心下一帧会发生什么。这就引出了我的问题:从迭代器中抛出a之后,继续使用Java集合(我对ArrayListand 的答案最感兴趣HashMapConcurrentModificationException是否安全?这样做似乎是合乎逻辑的,但是我找不到找到说明在抛出CME之后对象仍将处于可用状态的文档。显然,迭代器在那时是敬酒的,但是我想吞下异常并继续使用该集合。

java collections multithreading

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

使用Haskell中的代码进行类似Lisp的配置

我正在Haskell中编写一个光线跟踪器,目前,我在代码中定义了我的场景,如下所示:

(Scene [(Sphere (Vec3 1 0 0) 4 (PhongMaterial (color 1 0 0) (color 1 1 1) 4))]
       [(PhongLight (Vec3 0 0 0) (color 1 1 1) (color 1 1 1))])
Run Code Online (Sandbox Code Playgroud)

这在表达性方面非常有效,而且它很棒,因为我不必编写任何类型的解析器,但这意味着每次我想渲染不同的场景时都必须重新编译.我通过Lisp来到Haskell,这将是简单的(加载文件,评估内容,然后渲染结果)但我认识到Haskell的特性使得即使不是不可能,也很难.

你们中有谁更有经验的Haskellers有什么建议可以解决这个问题的最佳方法吗?在理想的世界中,我的代码外部有一些文件,用Haskell语法定义了我可以加载的场景; 在最不理想的世界里,我可能会在Parsec中编写一个解析器.谢谢!

haskell

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

如何判断 Python 模块是否是命名空间模块

在 Python 3 中,模块可以是没有命名空间模块__init__.py(根据PEP 420)或作为常规模块(即“[modules] 包,因为它们在 Python 3.2 及更早版本中实现” - PEP 420)具有一个__init__.py或 是单个.py文件。

如何区分命名空间模块和“普通”模块?

(我使用的是 Python 3.5.3)

例如命名空间模块命名mod打印为:

(Pdb) mod
<module 'mymodule' (namespace)>
Run Code Online (Sandbox Code Playgroud)

和普通模块打印为:

(Pdb) mod
<module 'mymodule' from '/path/to/mymodule/__init__.py'>
Run Code Online (Sandbox Code Playgroud)

python namespaces module python-3.x

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