小编Xar*_*Xar的帖子

NameError:未定义全局名称"send_from_directory"

我正在使用Flask并尝试提供文件供用户下载.

我的代码看起来像这样:

@app.route('/downloads/<string:yt_id>')
def download_file(yt_id):

    def hooks(data):
        if data['status'] == 'finished':
            filename = data['filename']

    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }],
        'progress_hooks': [hooks],
    }
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['http://www.youtube.com/watch?v='+yt_id])


    return send_from_directory(".",
                               filename,
                               as_attachment=True)
Run Code Online (Sandbox Code Playgroud)

我想上面代码中唯一相关的部分是这样的:

    return send_from_directory(".",
                               filename,
                               as_attachment=True)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误消息:

NameError: global name 'send_from_directory' is not defined
Run Code Online (Sandbox Code Playgroud)

我已经看过几个人们如何使用的例子,send_from_directory我并没有看到我正在做的事情有多大的不同.所以任何帮助将不胜感激.

python flask

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

Python Mock:在我正在测试的函数中模拟一个函数

我正在尝试使用Mock来测试从检索设置的函数返回的结果:

def apply_delta_to_date(original_date):
    delta = MySettings.get_delta()
    result_date = original_date + timedelta(delta)
    return result_date
Run Code Online (Sandbox Code Playgroud)

在测试apply_delta_to_date函数时,我试图模拟调用MySettings.get_delta以模拟它返回特定结果:

class TestAppyDelta():
    def setUp(self):
        self.MySettings = Mock()
        self.MySettings.get_delta = Mock(return_value=10)

    def test_apply_delta(self):
        result = apply_delta_to_date(today)
Run Code Online (Sandbox Code Playgroud)

问题是我无法“模拟”MySettings.get_delta()我真正想要测试的函数内部的函数调用。

我如何模拟我正在测试的函数中的内部函数返回的结果?

python mocking

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

在FullCalendar日添加更多字段/数据

我正在使用FullCalendar JQuery插件开发一个Web应用程序,以显示公司每天都缺少/存在工作人员.

我需要在每天显示几种类型(或字段)的信息.例如,我想每天显示:标题(例如"约翰缺席")和百分比(例如,"95%帮助").我希望这个百分比在每天的框的右下角以不同的格式显示.

据我所见,描述事件的可能字段基本上是这些:

        events: [
        {
            title: 'John is sick',
            start: '2013-11-19',
            allDay: true
        },
        {
            title: 'Mike is on vacation',
            start: '2013-11-21',
            end: '2013-11-26',
            allDay: true
        }
    ]
Run Code Online (Sandbox Code Playgroud)

有没有办法在FullCalendar日添加更多字段(如协助的百分比)?

编辑:感谢Henrique C的回答,我设法做到了.只是为了完成更多的答案,我想补充一点,除了做Henrique在他的回答中所说的,还有必要做这样的事情:

$('#calendar').fullCalendar({
events: [
    {
        title: 'My Event',
        start: '2010-01-01',
        description: 'This is a cool event'
    }
    // more events here
],
eventRender: function(event, element) {
    element.qtip({
        content: event.description
    });
}
Run Code Online (Sandbox Code Playgroud)

});

javascript jquery fullcalendar

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

Python:需要一个整数.哪里?为什么?

我在使用这个简短的代码片段时遇到了问题:

for i, row in enumerate(rows):
    row["last_check"] = last_check_ts
    row_filtered = {
        k: v.replace('\r', '') for k, v in row.iteritems() if v is not None
    }
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

k: v.replace('\r', '') for k, v in row.iteritems() if v is not None
TypeError: an integer is required
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?究竟是什么应该是一个整数?

编辑:

这就是rows在控制台上打印的内容:

[{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': None, 'ES_FISICA': 'N', 'COD_PERSONA': '37470', 'NOMBRE': 'BLABLA', 'COD_PER_JURIDICA': '37470', 'FECHA_MODIFICACION': None, 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)},
{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': 'FOO', 'ES_FISICA': …
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×3

flask ×1

fullcalendar ×1

javascript ×1

jquery ×1

mocking ×1