小编Gat*_*ter的帖子

我如何在Python中打破这条长线?

你会如何格式化这样的长行?我希望它的宽度不超过80个字符:

logger.info("Skipping {0} because its thumbnail was already in our system as {1}.".format(line[indexes['url']], video.title))
Run Code Online (Sandbox Code Playgroud)

这是我最好的选择吗?

url = "Skipping {0} because its thumbnail was already in our system as {1}."
logger.info(url.format(line[indexes['url']], video.title))
Run Code Online (Sandbox Code Playgroud)

python formatting code-formatting

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

python的`assert`语句有哪些可接受的用例?

如果我们处于腐败状态,我经常使用python的assert语句来检查用户输入并快速失败.我知道当使用-o(优化)标志的python时,assert会被删除.我个人不会在优化模式下运行我的任何应用程序,但感觉我应该远离断言只是在案件中.

写作感觉要干净得多

assert filename.endswith('.jpg')
Run Code Online (Sandbox Code Playgroud)

if not filename.endswith('.jpg'):
    raise RuntimeError
Run Code Online (Sandbox Code Playgroud)

这是断言的有效用例吗?如果没有,python assert声明的有效用例是什么?

python assert

30
推荐指数
4
解决办法
7024
查看次数

django是否存在防止重复表单提交的库?

我试图找到一种方法来阻止用户双重提交我的表单.我有javascript禁用提交按钮,但仍然有偶尔的用户找到双重提交的方法.

我有一个可重用的库的愿景,我可以创建以防止这种情况.

在我理想的库中,代码块看起来像这样:

try:
    with acquire_lock({'field1':'abc', 'field2':'def'}) as lock:
        response = #do some credit card processing
        lock.response = response
except SubmissionWasDuplicate, e:
    response = e.response
Run Code Online (Sandbox Code Playgroud)

锁表看起来像这样:

duplicate_submission_locks

  • submission_hash#提交参数的MD5
  • 响应#腌制数据
  • created_at#用于扫描此表
  • lock_expired #boolean表示锁是否已过期

有谁知道这是否已经存在?它似乎并不难写,所以如果它不存在我可以自己写.

python django code-reuse

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

如何限制Django错误电子邮件

我通过电子邮件使用django错误报告.它通常是一个非常有用的功能,除了现在我们有5分钟的数据库停机时间,我收到了2000封电子邮件.是否有任何中间件可以帮助我限制django每分钟发送的电子邮件数量?

python django error-handling error-reporting

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

将mysql查询结果转换为CSV(带复制/粘贴)

我经常在命令行mysql上工作.常见的需求是获取查询结果并将其导入Numbers文档(类似于Excel文档).

这样做的最快方法是什么?

方法1:选择输出文件

您可以直接从MySQL中选择一个outfile,但这需要几个步骤.

  1. 使用所有必要的参数导出您的查询,使其成为CSV格式,如FIELDS OPTIONALY ENCLOSED BYDELIMITED BY.
  2. sftp进入服务器并获取文件
  3. 从服务器删除该文件

方法2:复制/粘贴

我倾向于采用这种方法.对我来说似乎有点快,但这主要是因为我不记得如何SELECT INTO OUTFILE从上面构建查询并且必须查找它.

  1. 复制/粘贴到本地文本文件
  2. 在文本编辑器中打开并替换| 用,
  3. 保存为CSV并在Numbers中打开.

mysql csv numbers export

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

动态创建图像缩略图(使用django)

我想根据URL中的参数动态创建缩略图.例如,http://mysite.com/images/1234/120x45.jpg将为120x45图像ID 创建缩略图1234.

显而易见的解决方案是使用django视图执行以下操作:

  1. 以此大小查找以前缓存的图像版本.
  2. 如果没有缓存,则创建一个缩略图(一些锁定逻辑,这样只有一个进程创建缩略图,其他进程等待).
  3. 通过django管道结果.

这应该"有效",但我关注的是性能.我不喜欢使用django来提供静态内容的想法.有什么其他方法可以解决这个问题?

python django thumbnails

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

我可以在python中单元测试内部函数吗?

有没有办法写unittestsdoctestsinnerfunc

def outerfunc():
    def innerfunc():
        do_something()
    return innerfunc()
Run Code Online (Sandbox Code Playgroud)

python doctest unit-testing

8
推荐指数
1
解决办法
936
查看次数

iPhone GPS可以为正在运行的应用程序提供准确的速度吗

我正在考虑建立一个iPhone GPS应用程序来帮助跑步者.它需要每10秒获得一个准确的速度读数(在1英里每小时内).iPhone 3GS或新款iPhone 4是否能够准确读取?

iphone gps

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

提高Django中MySQL表创建的速度?

我的一些单元测试需要10-15秒才能创建表格.这似乎不必要地长.它必须创建大约50个表,但这仍然只有每秒3个表.在经常进行单元测试时,这是一个很大的烦恼.

作为一种解决方法,我一直在sqlite3中运行我的单元测试.它速度非常快,但我更喜欢在MySQL上运行我的测试,因为那是我的实时服务器运行的.

为了说明速度差异,创建一个新项目.然后使用mysql在其上运行syncdb.然后使用sqlite3尝试它.

[~/testproject] ./manage.py syncdb
Creating table auth_permission
Creating table auth_group
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Run Code Online (Sandbox Code Playgroud)

对我来说,在MySQL中创建上述表大约需要2秒钟.Sqlite3几乎是即时的.

我在我的开发机器上运行mysql.这是我的my.cnf.

请提出您可以想到的任何提示或调整,这可能有助于加快MySQL的表创建时间.

mysql django performance unit-testing django-models

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

执行并发 os/exec.Command.Wait() 时出现内存泄漏

我遇到了这样的情况:一个 go 程序占用了 15gig 的虚拟内存并且还在继续增长。该问题仅发生在我们的 CentOS 服务器上。在我的 OSX 开发机上,我无法重现它。

我是否发现了 go 中的错误,或者我做错了什么?

我已将问题归结为一个简单的演示,现在我将对其进行描述。首先构建并运行这个 go 服务器:

package main

import (
    "net/http"
    "os/exec"
)

func main() {
    http.HandleFunc("/startapp", startAppHandler)
    http.ListenAndServe(":8081", nil)
}

func startCmd() {
    cmd := exec.Command("/tmp/sleepscript.sh")
    cmd.Start()
    cmd.Wait()
}

func startAppHandler(w http.ResponseWriter, r *http.Request) {
    startCmd()
    w.Write([]byte("Done"))
}
Run Code Online (Sandbox Code Playgroud)

创建一个名为 /tmp/sleepscript.sh 的文件并将其 chmod 为 755

#!/bin/bash
sleep 5
Run Code Online (Sandbox Code Playgroud)

然后向 /startapp 发出多个并发请求。在 bash shell 中,您可以这样做:

for i in {1..300}; do (curl http://localhost:8081/startapp &); done
Run Code Online (Sandbox Code Playgroud)

VIRT 内存现在应该有几 GB。如果重新运行上面的 for 循环,VIRT 内存每次都会继续以 GB 为单位增长。 …

linux memory-leaks go

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

django sessisons是否可以安全地用于任务关键型注册表单?

在使用django驱动的会话时,设计关键任务注册表单时的最佳做法是什么?

  1. 通常认为要求用户接受会话cookie是好的吗?
  2. 是否有任何提示可以最大化可以接受会话cookie的用户百分比?

django cookies http

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

如何使用注释PEP8一长串字符串

带注释的行宽度超过80个字符:

MIDDLEWARE_CLASSES = (
    'mydogslow.middleware.MyWatchdogMiddleware',
    'gattlib.djangomiddleware.SetRemoteAddrFromXRealIP',
    'i18n.middleware.SetLanguageMiddleware',
    'whitelabels.middleware.SetWhitelabelMiddleware', # after SetLanguageMiddleware
    'myaffiliateprogram.middleware.BlockReferringURLs',
)
Run Code Online (Sandbox Code Playgroud)

我可以分解的最自然的方式是:

MIDDLEWARE_CLASSES = (
    'mydogslow.middleware.MyWatchdogMiddleware',
    'gattlib.djangomiddleware.SetRemoteAddrFromXRealIP',
    'i18n.middleware.SetLanguageMiddleware',
    'whitelabels.middleware.'
        'SetWhitelabelMiddleware', # after SetLanguageMiddleware
    'myaffiliateprogram.middleware.BlockReferringURLs',
)
Run Code Online (Sandbox Code Playgroud)

不幸的是,悬挂缩进违反了PEP8.

在此先感谢您向我展示如何打破这一阵容.

python django pep8

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