应该使用什么fork或者包的组合来使PyPy,Django和PostgreSQL一起玩得很好?
我知道PyPy和Django一起玩得很好,但我不太确定PyPy和PostgreSQL.我确实看到Alex Gaynor制作了一个名为pypy-postgresql的PyPy 分支.我也知道有些人正在使用psycopg2-ctypes.
这些叉子之间有区别吗?或者我们应该使用稳定的1.9 PyPy并使用psycopg2-ctypes?使用ctypes选项可能会影响性能,请参阅下面的注释.
另外,有没有人在使用PyPy和pyscopg2时遇到任何陷阱?如果某些东西不能正常工作,那么回归CPython似乎很容易,但主要是我正在寻找程序员可以提前做好准备的事情.
我环顾四周,似乎psycopg2本身与PyPy一起工作.虽然psycopg2-ctypes似乎确实对某些人有用,但是有一个关于pypy-dev的讨论.我在Windows上工作,我不认为psycopg2-ctypes已经为Windows做好了准备,遗憾的是.
我需要能够对两个带注释的列的聚合进行排序
所以我想做这样的事情:
c = c.annotate(metric=Sum('results__metric'))
c = c.annotate(metric_prior=Sum('results__metric_prior'))
c = c.annotate(variance=F('metric')-F('metric_prior')) #doesn't work, for demonstrative purposes only
Run Code Online (Sandbox Code Playgroud)
然后:
c = c.order_by('variance')
Run Code Online (Sandbox Code Playgroud)
有谁知道如何完成上述的事情?
我们目前有一个由6个数据节点和一个非数据节点组成的集群.其中,两个目前是主人符合条件.此群集位于EC2上.
什么是主节点的最佳数量,或者是否有理由进行区分?
我们有一个脚本可以定期从各种来源下载文档。我将把它转移到 celery,但在这样做的同时,我想利用连接池,但我不知道如何去做。
我目前的想法是使用请求来做这样的事情:
import celery
import requests
s = requests.session()
@celery.task(retry=2)
def get_doc(url):
doc = s.get(url)
#do stuff with doc
Run Code Online (Sandbox Code Playgroud)
但我担心连接会无限期地保持打开状态。
只要我正在处理新文档,我真的只需要连接保持打开状态。
所以这样的事情可能:
import celery
import requests
def get_all_docs()
docs = Doc.objects.filter(some_filter=True)
s = requests.session()
for doc in docs: t=get_doc.delay(doc.url, s)
@celery.task(retry=2)
def get_doc(url):
doc = s.get(url)
#do stuff with doc
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,我不确定连接会话是否会跨实例持续存在,或者一旦酸洗/取消酸洗完成,请求是否会创建新连接。
最后,我可以在类方法上尝试对任务装饰器的实验性支持,如下所示:
import celery
import requests
class GetDoc(object):
def __init__(self):
self.s = requests.session()
@celery.task(retry=2)
def get_doc(url):
doc = self.s.get(url)
#do stuff with doc
Run Code Online (Sandbox Code Playgroud)
最后一个似乎是最好的方法,我将对此进行测试;但是,我想知道这里是否有人已经做过类似的事情,或者如果没有,你们中的一个人可能有比上述方法更好的方法。
我正在尝试使用请求下载一些文档,但页面将我重定向到屏幕上的用户日志,从而下载HTML页面.
我试过做:
c=requests.get(url,auth=HTTPBasicAuth('user','pass'))
Run Code Online (Sandbox Code Playgroud)
但我没有通过身份验证.
我也尝过香草和文摘.
表单本身如下所示:
<input id="username" name="username" class="required" tabindex="1" type="text" value="" size="25" autocomplete="false"/>
<br/>
<label for="password">Password</label>
<input id="password" name="password" class="required" tabindex="2" type="password" value="" size="25" autocomplete="off"/>
Run Code Online (Sandbox Code Playgroud)
我是否需要传递用户名和密码作为有效负载的一部分?如果是这样,我该怎么做?到目前为止,我尝试了几种不同的方法.
我正在使用sparklines包http://omnipotent.net/jquery.sparkline/#s-about
我试图让迷你图条形图适合预定尺寸,但我有很多图表,理想情况下这应该是动态的.
我正在尝试这样的事情:
$.each(sparklines, function(index, sparkline) {
var sparkline = $(sparkline);
var data_out = sparkline.attr('data');
$.getJSON('/search/histogram/?histo_field=' + data_out, function (data) {
var width = sparkline.width();
var data_obj = data.data;
var l = data_obj.length;
var pixel_width = parseInt((370-l) / l);
sparkline.sparkline(data_obj, {type: 'bar', "barWidth":pixel_width,"height":50})
});
});
Run Code Online (Sandbox Code Playgroud)
这parseInt((370-l) / l);是考虑间距.
问题是,它不合适.特别是当条形图中有许多这样的条形图时.
它应该使用370px,但在一种情况下它使用363px而在另一种情况下它使用281.
我尝试过这样做parseInt(370) / l);但是留下了大约十个px的悬垂.
有什么想法吗?
所以我试图让这个形式异常.理想情况下,我使用此表单添加单位,然后动态更新表.我不希望整个页面刷新.我用javascript并不是那么好用,我可以用一些指针来说明正在发生的事情:
发生了一些我不想发生的事情:
大多数情况下,我只是想了解发生了什么,但问题是,如何更改以下内容以解决上述两个问题?(如果问题完全是问题.)
下面的一些代码来自这个问题:
如何在twitter bootstrap模式窗口中插入django表单?
为了记录,我看到帖子在请求中很好.POST,我只是想让它工作异步,这就是我的问题与上面的不同.
{% block scripts %}
<script type="text/javascript">
$(document).ready(function() {
modalConnect();
});
</script>
<script type="text/javascript">
$( document ).ajaxStop( function() {
modalConnect();
});
</script>
<script type="text/javascript">
function modalConnect()
{
//unbind the click event. If not done we will end up with multiple click event bindings, since binding is done after each ajax call.
$(".editItem").unbind('click');
//bind the click event
$(".editItem").click(function(ev) { // for each edit item <a>
ev.preventDefault(); // prevent navigation
var url = this.href; …Run Code Online (Sandbox Code Playgroud) django ×4
python ×4
javascript ×2
ajax ×1
celery ×1
django-orm ×1
jquery ×1
postgresql ×1
psycopg2 ×1
pypy ×1
sparklines ×1
urllib3 ×1