我有一个复杂的Django Web应用程序,其中包含许多人年的工作.有时可能需要优化.我可以编写几个常见的操作/流程(例如)django的测试客户端.是否有一些程序,如果有这样的python脚本,将运行,并报告各种django特定的性能指标,如'运行的SQL查询数'.
基本上类似于单元测试套件,但不是报告"0测试失败",而是报告"X db查询已经完成"
我自己可以写这个,这不是一个复杂的问题,但我想知道以前有人做过.
我知道Django调试工具栏,它可以做很多这个,但是有更多的"命令行",可以在很多页面上工作,而不是一次页面刷新.同样地获得实际查询相对容易.但有没有人把整个事情包裹在脚本/库中?
我正在编写一个django南迁移,这取决于另一个应用程序中的模型,所以我--freeze OTHERAPPNAME在运行时已经包含了python manage.py datamigration …
但是在forwards()函数中我可以正常访问其他模型(带orm['otherappname.MyModelName']),但是在backwards()步骤中(这也取决于其他名称中的模型),如果我尝试访问orm['otherappname.MyModelName'],我会收到错误
*** KeyError: "The model 'mymodelname' from the app 'otherappname' is not available in this migration."
Run Code Online (Sandbox Code Playgroud)
我可以在文件底部看到冻结的模型细节.为什么我不能访问它?
注意:此模型是在此数据迁移所依赖的其他迁移内创建的.
如何在Django应用程序中删除数据库中的所有数据?在之前的版本中manage.py reset APPNAME完成了这项工作,但已被弃用.
如果我们想要使用命令行删除应用程序中的所有数据,我们现在应该做什么?
我想在Linux(Ubuntu Linux 9.10)上编写一个程序(在python中),它将跟踪我每秒/分钟的按键次数.这包括普通字母键和控制/移位/空格/等.
有没有办法挂钩到X,以便我可以说"当按下一个键时调用这个函数?".因为我希望在我正常工作的同时在后台运行,所以这个函数调用必须能够知道所有程序的所有按键操作.我想它有点像键盘记录器.
这只是个人的事情,所以我不关心它是否可以在Windows/OSX上运行,我不关心人们什么时候有花哨的远程X会话等.
我正在用python进行单元测试.我没有使用任何自动测试发现.我组装TestCases成TestSuite手动.
我可以运行这些测试unittest.TextTestRunner().run(suite),我想运行它们,unittest.main()以便我可以使用命令行选项(如-v/ --failfast).文档说unittest.main()可以采用TestRunner选项.
如何将我TestSuite转换为TestRunner?
我有一个django模型(A),它有一个ManyToManyField(类型)到另一个模型(B).从概念上讲,A中的字段是"可选地将此对象限制为这些值".我已经设置blank=null并null=True在ManyToManyField.我已经从这个模型创建了一个对象,并将类型设置为某些值.一切都很好.
我想将其设置为'null',即禁用它.但是在django shell中,我收到以下错误:
>>> o.types.all()
[<Type: foo>, <Type: bar>]
>>> o.types = None
File "<console>", line 1, in <module>
File ".../virtualenv/lib/python2.6/site-packages/django/db/models/fields/related.py", line 627, in __set__
manager.add(*value)
TypeError: add() argument after * must be a sequence, not NoneType
Run Code Online (Sandbox Code Playgroud)
我可以成功地将它设置为[](空列表),但我想将其设置为None,因为我想使用None作为信号/标志.这在Django模型中是否可行?
我正在使用Django 1.1
我有一个带有外部JavaScript库的网页,以及我自己的额外代码.外部库无法更改.它操纵dom元素,添加新元素,更改属性(例如src在某些<img>节点上等).我正在使用jQuery.是否有任何事件处理程序在属性值更改节点时触发?
即有反正我可以检测(jQuery中)时src的<img>改变(由其他人?)
我想在我的网站上添加一个按钮,所以当人们点击它时,他们会在消息上发布消息到他们的Facebook状态提要(我很好,他们必须批准它).FB.ui和stream.publish看起来像我想要什么.
注意:可以使用某些UI方法(如stream.publish和stream.share)而无需注册应用程序或调用此方法.
所以我不需要注册一个Facebook应用程序,非常棒.但是我不能FB.ui(… 'stream.publish…)上班.弹出窗口显示"发生错误.请稍后再试.".我没有使用FB.init,也没有使用appid.(所有这些都是在JavaScript中完成的).
网上有一些笔记,你现在需要一个app id才能使用stream.publish.这是真的?你需要appid来使用stream.publish吗?
我的代码是这样的:
$(function() {
$("#share_on_facebook").click(function() {
FB.ui({
method: 'stream.publish',
message: 'Check out this great app! http://apps.facebook.com/{your_app}'
});
});
});
Run Code Online (Sandbox Code Playgroud)
我可以stream.share在不需要appid的情况下打电话(如文档所述).这只是stream.publish我做不到的.
我可以在gstreamer的命令行上播放视频gst-launch:
gst-launch gnlfilesource location=file:///tmp/myfile.mov start=0 duration=2000000000 ! autovideosink
Run Code Online (Sandbox Code Playgroud)
这将在/tmp/myfile.mov中播放文件的前2秒,之后视频播放停止.无论如何要让它重复循环?gnlfilesource即将2秒长转为无限长度的视频,一次又一次播放2秒钟?
为什么我能用bash做到这一点:
$ diff -u <(echo -e "line1\nline2") <(echo -e "line1\nline3")
--- /dev/fd/63 2009-03-30 09:49:07.527272646 +0100
+++ /dev/fd/62 2009-03-30 09:49:07.527272646 +0100
@@ -1,2 +1,2 @@
line1
-line2
+line3
Run Code Online (Sandbox Code Playgroud)
即我可以使用命名管道/进程替换来获得一小块文本的差异.然而,当我尝试使用wdiff时,单词的差异,而不仅仅是行,我没有得到有用的输出
wdiff <(echo -e "line1\nline2") <(echo -e "line1\nline3")
[--]{++}
Run Code Online (Sandbox Code Playgroud)
更新:看起来有一个现有的ubuntu错误报告:https://bugs.launchpad.net/ubuntu/+source/wdiff/+bug/160912
python ×5
django ×4
linux ×3
javascript ×2
bash ×1
diff ×1
django-1.4 ×1
django-orm ×1
django-south ×1
dom-events ×1
facebook ×1
gnonlin ×1
gstreamer ×1
jquery ×1
keylogger ×1
keypress ×1
migration ×1
performance ×1
testing ×1
unit-testing ×1
video ×1
xorg ×1