小编Aid*_*adi的帖子

Python - 类__hash__方法和集合

我正在使用类set()__hash__方法python来防止在set中添加相同的哈希对象.根据python数据模型文档,set()将相同的哈希对象视为同一个对象,只需添加一次即可.

但它的行为如下:

class MyClass(object):

    def __hash__(self):
        return 0

result = set()
result.add(MyClass())
result.add(MyClass())

print(len(result)) # len = 2
Run Code Online (Sandbox Code Playgroud)

在字符串值的情况下,它可以正常工作.

result.add('aida')
result.add('aida')

print(len(result)) # len = 1
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么相同的哈希对象在集合中不相同?

python hash set python-datamodel python-3.x

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

Python - Django:使用HttpResponse流式传输视频/ mp4文件

我正在使用Python2.7,django==1.7并将uwsgi视频/ mp4文件流式传输到iPhone播放器.

我的代码如下:

def stream(request):
     with open('/path/video.mp4', 'r') as video_file:
        response = HttpResponse(video_file.read(), content_type='video/mp4')
        response['Content-Disposition'] = 'inline; filename=%s' % 'video.mp4'
        return response
     video_file.close
Run Code Online (Sandbox Code Playgroud)

当我使用一些小视频(小于1MB),它在浏览器中流,但在iPhone palyer我有这个错误:

[uwsgi-http key:127.0.0.1:8008 client_addr:192.168.0.172 client_port:14563] hr_write():Broken pipe [plugins/http/http.c line 564]

当视频大小超过5MB时,它不会同时传输(意味着浏览器和iPhone播放器)同样的错误.

我尝试使用StreamHttpRespose返回chunk chunk,如下所示:

def read(chunksize=8192):
    with open('/path/video.mp4', 'rb') as video_file:
        byte = video_file.read(chunksize)
        while byte:
            yield byte

return StreamingHttpResponse(read(), content_type='video/mp4')
Run Code Online (Sandbox Code Playgroud)

但是有同样的错误:Broken pipe.

我可以传输pdf和图像文件.此问题仅适用于mp4文件.而且我还将content_type更改为'video-mpeg',浏览器下载了这个,而我想阻止文件下载.

你有什么想法?任何解决方案!!?

django video video-streaming uwsgi python-2.7

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

Python - pyodbc使用参数名称调用存储过程

我需要使用输入参数名称SqlServer stored procedure来自python2.7via pyodbc模块.

我根据输入参数顺序的文档尝试:

cursor.execute('{CALL [SP_NAME](?,?)}',
              ('value', 'value'))
Run Code Online (Sandbox Code Playgroud)

它工作,但我需要通过parameter name of stored procedure因为存储过程输入参数的顺序总是改变.所以我需要通过名字传递它们.

cursor.execute('{CALL [SP_NAME](@param1name,@param2name)}',
              ('value', 'value'))
Run Code Online (Sandbox Code Playgroud)

但这不起作用.什么是正确的语法?

sql-server django stored-procedures pyodbc python-2.7

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

使用IronPython在SQL Server Analysis Services上执行查询

我可以使用Microsoft.AnalysisServices.dll,使用Python连接到SQL Server Analysis Service ,但现在无法在多维数据集上执行查询。

我尝试过Execute以下方法:

amoServer.Execute('select from finance')
Run Code Online (Sandbox Code Playgroud)

发出Execute方法后,我出现此错误:

<Microsoft.AnalysisServices.XmlaError object at 0x000000000000002B [Microsoft.AnalysisServices.XmlaError]>
Run Code Online (Sandbox Code Playgroud)

注意:我在Windows Server 64Bit上将IronPython与Python 2.7一起使用。

有什么问题?

sql sql-server ssas ironpython

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