我正在使用来自此站点的django-on-twisted脚本运行django应用程序.
所有请求都由nginx服务器提供服务,该服务器反向代理相关的扭曲请求.我有一个API的URL设置,它基本上只接收get请求并在发送响应之前对get参数进行一些处理.但是,当特定客户端访问api时,扭曲的服务器才会关闭.粘贴在下面的是Nginx日志:
the.ip.of.client - - [21/Apr/2012:11:30:36 -0400] "GET /api/url/?get=params&more=params HTTP/1.1" 499 0 "-" "Java/1.6.0_24"
Run Code Online (Sandbox Code Playgroud)
扭曲的日志只显示扭曲的停止工作.通过错误代码499,我假设客户端意外关闭了连接,我没有问题.客户是否收到回复对我来说并不重要.这是相关的django视图:
def api_url(request):
if request.GET:
get_param = request.GET.get('get', [''])[0]
more_param = request.GET.get('more', [''])[0]
#some processing here based on the get params
return HttpResponse('OK')
else:
raise Http404
Run Code Online (Sandbox Code Playgroud)
来自客户端的请求是有效请求,不会以不利方式影响处理.我从shell测试过它.当我在django开发服务器上尝试它时,它也以相同的方式崩溃,而没有留下任何接收请求的痕迹.从浏览器进行测试时,一切都运行良好.此外,扭曲的服务器适用于所有常规用例.这是我第一次遇到问题.任何帮助或指示将不胜感激.
我有一个文本文件,如下所示:
random useless text
<!-- this is token 1 -->
para1
para2
para3
<!-- this is token 2 -->
random useless text again
Run Code Online (Sandbox Code Playgroud)
我想在令牌之间提取文本(当然不包括令牌).我尝试使用##和%%来提取数据,但它不起作用.我认为它不适用于操纵如此大的文本文件.有什么建议我怎么做?也许awk或sed?
我想要做的是在我的网站上嵌入一个地图,并允许用户在其上放置标记(如果有一种方法可以控制用户可以在地图上放置多少个标记?)我还想获得坐标这些标记一旦被放在地图上.从我为谷歌地图javascript api V3阅读的文档,我可以自己在地图上放置标记,但我没有看到让用户把它们放在地图上的方法.有办法吗?
我使用transaction.atomic作为django 1.6中事务的上下文管理器.我想在一个事务中有一段代码,它有几个网络调用和一些数据库写入.我看到非常奇怪的行为.每隔一段时间(也许是20次中的1次)我注意到发生了部分回滚,没有引发任何异常并且视图执行没有任何错误.我的应用程序托管在heroku上,我们使用heroku postgres v9.2.8.伪代码:
from django.db import transaction
def some_view(request):
try:
with transation.atomic():
network_call_1()
db_write_1.save(update_fields=['col4',])
db_write_2.save(update_fields=['col3',])
db_write_3.save(update_fields=['col1',])
network_call_2()
db_write_4.save(update_fields=['col6',])
db_write_5.bulk_create([object1, object2])
db_write_6.bulk_create([object1, object2])
except Exception, e:
logger.error(e)
return HttpResponse()
Run Code Online (Sandbox Code Playgroud)
我注意到的行为是,在没有引发任何异常的情况下,db write 1-3已经回滚并且其余的已经完成,或者db write 1已经回滚并且其余已经完成,依此类推.我不明白为什么会发生这种情况.首先,如果存在回滚,那么它不应该是事务的完全回滚吗?如果有回滚不应该引发异常,以便我知道发生了回滚?每次发生这种情况时,都没有引发异常,代码只是继续执行并返回一个成功的HttpResponse.
相关设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': '5432',
},
}
CONN_MAX_AGE = None
Run Code Online (Sandbox Code Playgroud)
自从几天以来,这个错误让我感到困惑.任何线索都会有很大的帮助!
问题就是这一切.我的jquery autocomplete从我自己的apis获取源代码.如果找不到任何匹配项,则只返回"找不到匹配项",然后显示在下拉列表中.当用户关注此时,框中的文本将更改为"找不到匹配项".我想要做的是在下拉列表中显示"找不到匹配项",但要使其无法对焦/可选择.这是我现在的代码:
$(document).ready(function() {
$("input#id_address").autocomplete({
delay: 300,
minLength: 3,
source: function(request, response) {
$.getJSON("/pin/cache/", {q:encodeURI(request.term)}, function(results) {
res = results.results;
response($.map(res, function(item) {
return {
label: item.address,
value: item.address,
lat: parseFloat(item.lat),
lng: parseFloat(item.lng)
}
}));
});
},
select: function(event, ui) {
if (ui.item.value == 'no matches found') {
return;
}
else {
$("#id_address").val(ui.item.value);
var pos = new google.maps.LatLng(ui.item.lat, ui.item.lng);
map.setCenter(pos);
map.setZoom(14);
placeMarker(pos);
}
},
});
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用if else循环检查select:function中的"找不到匹配项",如果未找到匹配项,则不执行任何操作.但是,仍然会在焦点上填写"找不到匹配"的文字.我希望找到匹配项时在焦点上填写文本的默认功能,但是当找不到匹配项时,下拉列表应该是不可聚焦的.有什么建议 ?
javascript jquery jquery-autocomplete jquery-ui-autocomplete
例如,这两个链接指向同一位置:
http://www.independent.co.uk/life-style/gadgets-and-tech/news/2292113.html
我如何在python中检查这个?
django ×2
javascript ×2
python ×2
bash ×1
google-maps ×1
heroku ×1
jquery ×1
nginx ×1
postgresql ×1
transactions ×1
twisted ×1
urllib2 ×1