默认情况下,在IPython中调试期间,ipdb在代码中显示当前位置上方的一行和一行.
是否有一种简单的方法可以使区域显示更大?我认为它是可配置的,但一直无法找到它.
from account_import.models import ImportFile每次打开我的Django shell时,我都厌倦了打字.每当我启动shell时,有没有办法自动运行此命令?
这个问题:在Django shell启动时自动导入模型的答案解释了如何在开始时使用shell_plus导入模型,但没有回答如何一般地运行代码.
但有没有一种简单的方法来运行python脚本?
python manage.py shell [or shell_plus] --run=script.py
Run Code Online (Sandbox Code Playgroud)
只需运行脚本就像在shell启动时输入整个内容一样.
我意识到你可以在shell中导入东西,但是它们会被卡在命名空间中.
我认为ipython应该有办法运行脚本,然后将其locals()导入到顶级命名空间.在那种情况下你可以做到%magic script.py,我们只需要一步,这将是好的.
改变你启动shell的方式应该没问题 - 主要目标是能够创建一个在shell启动时运行的文件.
我有一个网站,允许用户链接YouTube视频.我们检查他们所有的家庭友好.但是,youtube视频创作者可以修剪视频,这意味着更改视频的开始和结束时间,更改显示的内容.这种类型的更改可以缩小视频,或者可以恢复为延长视频或两者的组合,这可能导致完全不同的视频内容集.
我们希望能够检测到这些类型的更改,并在实际显示的帧已更改时重新检查视频.我们不能简单地查看更改的持续时间,因为用户可以撤消修剪然后重新修剪到完全相同的长度,我们不会注意到.修剪也不会改变视频的发布日期.
我们正在使用youtube api,例如:
https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2CrecordingDetails%2Cstatus&id=[videoId]&key=[apiKey]
Run Code Online (Sandbox Code Playgroud)
这为我们提供了大量数据,包括:
Duration - this doesn't always change when a video is trimmed (undo trim, trim again)
Title
Etag - this changes all the time
Thumbnails - These don't change when you trim
PublishedAt - this doesn't change when you trim
Run Code Online (Sandbox Code Playgroud)
Etag的变化确实表明了变化,但它经常变化 - 任何时候标题改变,以及许多其他类型的变化.因此,我们会错误地提醒我们不需要适度的变更.
我们还考虑过抓取随机帧并随着时间的推移进行比较,但是没有公共API.
那么,我们如何使用API来检测视频内容是否已更改?
我在这里问,因为youtube建议在这里询问我在此问题中包含的标签:https://developers.google.com/youtube/v3/support
另请注意,如果使用现有API无法解决此问题,则表示向网站提交youtube链接的用户可以随意更改视频内容,而网站无法以合理的方式更改内容.即Youtube没有给消费者一种方法来验证给定videoId中的帧和声音不会改变.
在python中,我生成复杂的静态页面.然后我将它们放入memcached中,以便下次它们被请求时,它们可以直接从Nginx服务(根本没有点击python)
这很有效,直到我意识到在Nginx中存储未压缩的html是多么低效.所以我尝试在存储之前手动gzip数据,并让Nginx直接返回(只是设置content-encoding:gzip),但是虽然Nginx的文档表明它是可能的,但我还是无法让它工作.
在我的测试中,我通过NPE的回答在python中使用gzip填充缓存中的数据,如何在Python中压缩字符串?.我还将这些的memcached标志设置为1.
在此时没有其他更改,Nginx提供原始数据,在浏览器中显示为垃圾.
之后,我更改了该位置的Nginx设置,将该memcached_gzip_flag字段设置为1,以便Nginx知道数据已经被gzip压缩,但是nginx仍然提供原始数据.我已经尝试过的nginx的的设置,每一个组合:gzip on和memcached_gzip_flag 1,但在所有情况下,浏览器显示原始数据(第一直接命中蟒蛇后); 在某些情况下,firebug报告内容编码是gzip(但仍显示原始gzip数据),而在其他情况下,内容编码未设置.
总的来说,我的攻击计划是欺骗nginx使用正确的标头提供已经压缩的数据,以便浏览器解压缩它.
我在nginx 1.6和memcached 1.4.13
这是相关的nginx配置行,最初可以使用.第一次命中从python中获取数据,填充缓存,第二次命中直接来自memcached.
location ~* <matching stuff>
{
if ($request_method = POST){
break;
}
memcached_gzip_flag 1;
set $memcached_key $uri;
memcached_pass 127.0.0.1:11211;
error_page 404 405 502 = @redo;
default_type text/html;
}
Run Code Online (Sandbox Code Playgroud)
更新:我试验了更多(评论中的细节),但仍然没有结果.
UPDATE POST BOUNTY:我对此没有任何好的答案.基本上,我根本无法使用该memcached_gzip_flag功能.未来回答者的注意事项:如果你回答这个问题,我会给你赏金并奖励给你.这比将一半的赏金自动判给完全错误的答案更可取.
我已经将ctl + tab和ctl + shift + tab重新映射到Window.NextTab和Window.PreviousTab.
但是当我调用File.Close时,Visual Studio 2013仍然使用MRU来决定将哪个选项卡带到前台,这通常会导致焦点跳转到某个未触及的位置.我想更改此行为,以便刚刚关闭的选项卡(在选项卡中的右侧)之后的选项卡被带到前台(如果它存在).这会使VS的行为与ff,chrome,notepad ++等相匹配.
我已经尝试了一堆扩展,虽然其中许多扩展更改或创建了自己的下一个/上一个选项卡函数,但似乎没有一个扩展到File.Close的新版本.
有谁知道这是可能的还是任何扩展的身份呢?
是否存在受htaccess保护页面的已知缺陷?
我知道他们可以接受暴力攻击,因为对某人可以尝试登录的次数没有限制.如果用户可以在服务器上上传并执行文件,则所有投注均已关闭...
还有其他.htaccess缺陷吗?
在jquery 1.4.2中,ff 3.6.6:
以下代码生成三个div,它们会像您期望的那样将消息写入firebug控制台.但是,如果您取消注释循环并注释掉手动执行它的3行,则它不起作用 - 将鼠标悬停在任何div上会导致"three"写入控制台.
为什么这两种方法彼此不同?在每一个中,您使用选择器来查找元素并向其添加事件.
<head>
<script type="text/javascript" src="/media/js/jquery.js"></script>
<script>
$( document ).ready( function() {
$("#one").mouseenter(function(){console.log("one")})
$("#two").mouseenter(function(){console.log("two")})
$("#three").mouseenter(function(){console.log("three")})
// names=['one','two','three'];
// for (k in names){
// id=names[k]
// $("#"+id).mouseenter(function(){console.log(id)})
// }
})
</script>
</head>
<body>
<span id="one">ONE</span>
<p><span id="two">TWO</span></p>
<p><span id="three">THREE</span></p>
</body>
Run Code Online (Sandbox Code Playgroud) 在Django管理员中,我有时会向(现有)组添加或删除用户.当发生这种情况时,我希望能够运行一个功能.
我只是使用标准的用户和组模型.
我已经看过用信号做这个,通过m2m_changed,但它似乎需要一个通过类 - 我不认为在这种情况下有一个.
我正在为django调试一个大的单元测试,并希望使用我的常规调试工具来完成它:
两者都没有工作,因为unittest没有提交它正在运行测试的db端的事务.
显而易见的解决方案似乎是告诉unittest不要使用事务,或让它以某种方式提交.另一种方法是创建一个自定义设置文件,让runserver连接到事务.但第一个想法似乎应该很容易.有任何想法吗?我正在使用MySQL和django 1.3.1
我试图在金字塔中使用python 2.7.2和金字塔1.2.3进行简单的文件记录配置
它完全不符合我的预期.看起来即使我正在进入金字塔,它也没有加载正确的日志.test.py中的以下特定问题:
test.py
from pyramid.paster import bootstrap
env = bootstrap('../test.ini')
import logging
logging.basicConfig() #this apparently makes no difference
log=logging.getLogger('root') #same thing if I do getLogger(__name__) - it doesn't find the proj one.
print log.handlers
>>> []
Run Code Online (Sandbox Code Playgroud)
那真是怪了!没有处理程序?显然这不是我想到的日志.
print log
>>> logging.Logger
Run Code Online (Sandbox Code Playgroud)
不应该是RootLogger吗?
print log.parent
>>> [<logging.RootLogger>]
Run Code Online (Sandbox Code Playgroud)
嗯所以getLogger('root')的父级是真正的RootLogger?让我们看看它的处理程序是什么:
print log.parent.handlers
>>> [<logging.StreamHandler>]
Run Code Online (Sandbox Code Playgroud)
那真是怪了.
test.ini:
[app:proj]
use = egg:proj
sqlalchemy.url = mysql+mysqldb://proj_staging:pw@localhost/proj_staging?charset=utf8
# This apparently helps avoid mysql gone away errors
sqlalchemy.pool_recycle = 3600
[pipeline:main]
pipeline = proj
[loggers]
keys = …Run Code Online (Sandbox Code Playgroud) python ×6
django ×4
debugging ×2
.htaccess ×1
apache ×1
closures ×1
django-admin ×1
django-shell ×1
firebug ×1
gzip ×1
ipython ×1
javascript ×1
jquery ×1
memcached ×1
nginx ×1
pyramid ×1
security ×1
unit-testing ×1
video ×1
youtube ×1
youtube-api ×1