Python 在Django中使用Nibabel
我正在制作一个将.nii文件转换为png(zip)的web应用程序。 我已经用python实现了主逻辑,但在将其移植到web应用程序时遇到了问题。 所以我想创建一个表单,它接受一个.nii文件并输出一个包含所有.png片段的zip文件。到目前为止,我已经写了一个简单的视图: Views.py Models.pyPython 在Django中使用Nibabel,python,django,nifti,Python,Django,Nifti,我正在制作一个将.nii文件转换为png(zip)的web应用程序。 我已经用python实现了主逻辑,但在将其移植到web应用程序时遇到了问题。 所以我想创建一个表单,它接受一个.nii文件并输出一个包含所有.png片段的zip文件。到目前为止,我已经写了一个简单的视图: Views.py Models.py 毫不奇怪,它不起作用,因为nibabel.load函数需要路径,而不是MemoryUploadedFile中的对象。但我不知道还能做什么 所以我通过使用不同的文件上载处理程序解决了这个问
毫不奇怪,它不起作用,因为nibabel.load函数需要路径,而不是MemoryUploadedFile中的对象。但我不知道还能做什么 所以我通过使用不同的文件上载处理程序解决了这个问题
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler']
这有一个函数temporary\u file\u path()
,然后我将它传递给nibabel.load()
函数,瞧!问题解决了
参考资料:所以我通过使用不同的文件上载处理程序解决了这个问题
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler']
这有一个函数temporary\u file\u path()
,然后我将它传递给nibabel.load()
函数,瞧!问题解决了
参考资料:如果
nibabel.load
确实只对文件进行操作,您应该从客户端的帖子中检索文件数据,将其保存为临时文件,将其交给.load
,然后删除临时文件。这是上下文管理器的一个很好的用例(\uuuuuuuuuuuuuuuuuuuuuuuuuuuu进入
和\uuuuuuuuuuuuuuu退出
)。还要检查nibabel
模块是否有类似于load
的方法,即获取数据而不是文件名。如果nibabel.load
确实只处理文件,您应该从客户端的帖子中检索文件数据,将其保存为临时文件,将其交给。load
然后删除临时文件。这是上下文管理器的一个很好的用例(\uuuuuuuuuuuuuuuuuuuuuuuuuuuu进入
和\uuuuuuuuuuuuuuu退出
)。还要检查nibabel
模块是否具有类似于load
的方法,该方法采用数据而不是文件名。
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler']