这是我正在尝试运行的简化版本:
for (var i = 0; i < results.length; i++) {
marker = results[i];
google.maps.event.addListener(marker, 'click', function() {
change_selection(i);
});
}
Run Code Online (Sandbox Code Playgroud)
但我发现每个监听器都使用results.length的值(for循环终止时的值).我如何添加监听器,使得每次使用i时我添加它的值,而不是对i的引用?
javascript closures listener pass-by-reference pass-by-value
我对正则表达式还是比较新的.我正在尝试找到与特定模式匹配的最短文本字符串,但如果最短模式是较大匹配的子字符串,则会遇到问题.例如:
import re
string = "A|B|A|B|C|D|E|F|G"
my_pattern = 'a.*?b.*?c'
my_regex = re.compile(my_pattern, re.DOTALL|re.IGNORECASE)
matches = my_regex.findall(string)
for match in matches:
print match
Run Code Online (Sandbox Code Playgroud)
打印:
A|B|A|B|C
Run Code Online (Sandbox Code Playgroud)
但是我希望它能回归:
A|B|C
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,而不必遍历每个匹配,看它是否包含匹配的子字符串?
有没有一种简单的方法来计算存储在App Engine中的实体的大小?我想知道一个特定实体与实体大小达到1 MB上限的接近程度.
如果我有两种类型的模型,每种模型互相引用,那么我首先尝试定义的模型说它不能识别引用的其他类型(因为它在文件中进一步定义).例如:
class Author(db.Model):
most_recent_book = db.ReferenceProperty(Book)
class Book(db.Model):
author = db.ReferenceProperty(Author)
Run Code Online (Sandbox Code Playgroud)
这将声称无法识别引用的"Book"模型.如果我翻转订单,我会遇到同样的问题(除非它会说"作者"无法识别).我该如何解决这个问题?
我在我的网站上使用App Engine的高性能图像服务,并且我能够在我的本地机器和生产中正常工作,即我可以上传图像并使用blob键上的get_serving_url成功显示图像.但是,这些图像似乎不会在我的开发服务器上持续存在,即在我从计算机重新启动后返回时,图像不再显示.开发服务器吐出:
images_service_pb.ImagesServiceError.BAD_IMAGE_DATA
我猜它实际上是因为潜在的斑点不再存在(虽然这只是一种预感).我的数据存储的其余部分仍然完好无损,因为我正在使用启动设置"--datastore_path"来确保我的数据仍然存在.是否有一个单独的标志我需要用来持久保存blob?或者这里有一个我错过的单独问题?
所以我将Django与Google App Engine一起使用,我有一个urls.py文件,可以将每个网址重定向到相应的方法.这些方法中的每一个都自动传递"request"作为参数之一,我认为这是一个HttpRequest对象.
如何在我的代码中创建这个填充的请求对象?例如,如果我在我的代码深处的某个方法中,我想访问此请求对象,而不必将其传递给每个函数以确保它可用.假设urls.py调用方法foo,我现在的方式是:
foo(request):
# stuff here
bar(request)
# more stuff here
bar(request):
# stuff here<stuff>
baz(request)
# more stuff here
baz(request):
do something with request here
Run Code Online (Sandbox Code Playgroud)
这似乎是错误的,因为我不得不通过不需要它的函数传递请求,以便我可以在baz中使用它.
我想做点什么:
foo(request):
# stuff here
bar()
# more stuff here
bar():
# stuff here
baz()
# more stuff here
baz():
request = HttpRequest()
do something with request here
Run Code Online (Sandbox Code Playgroud)
即如果我不需要,则不会传递请求.但是,执行request = HttpRequest()会返回一个空的请求对象...我想要的是一个完全填充的版本,就像从urls.py调用的每个方法传递的那样.
我在这里浏览了HttpRequest的文档:http: //docs.djangoproject.com/en/dev/ref/request-response/ 但是没有看到这样做的方法.
任何想法将不胜感激.
谢谢,瑞恩
在谷歌地图v3中,我似乎无法将我的infoWindow的宽度小于200px.这是我正在使用的代码:
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var myMap = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var gmarker = new google.maps.Marker({position: latLng,title:'Example'} );
var infoWindow = new google.maps.InfoWindow();
infoWindow.setOptions({maxWidth: 110});
window_content = '<div style="width:110px;height:110px;">Test</div>';
infoWindow.setContent(window_content);
infoWindow.open(myMap, gmarker);
Run Code Online (Sandbox Code Playgroud)
有没有办法让infoWindow更窄?还是我坚持最小宽度?
我注意到Java实现中对urlfetch的同步异步调用似乎有限制(如下所示:http://code.google.com/appengine/docs/java/urlfetch/overview.html)
但不是在python文档中:
http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html
那么async urlfetch的python版本的上限是10还是没有记录(或在其他地方记录)?或者是其他限制(或不存在)?
iOS 8 的一项功能是能够使用手机的摄像头扫描信用卡并将号码自动输入到 Safari 的输入中。看这里: http //www.cnet.com/how-to/scan-your-credit-card-instead-of-keying-in-number-for-purchases-in-ios-8/
然而,虽然我已经确认它适用于 amazon.com 的移动网站,但它不适用于较小的零售商。这些零售商需要做什么才能让它在他们的网站上运行?
我正在尝试在eclipse中配置PyDev,作为其中的一部分,我正在尝试将一些源文件夹添加到PYTHONPATH的外部库部分.但是,当我在eclipse中单击"添加源文件夹"时,它不会让我钻进任何.app目录.通常,在常规Finder中,我会右键单击并选择"显示包内容",但是通过Eclipse中的"添加源文件夹",所有.apps都显示为灰色,我无法右键单击它们.关于我如何通过这个的任何想法?具体来说,我希望深入研究GoogleAppEngineLauncher.app.我仍然是Macs的新手,所以我猜(希望?)解决方案对你们中的一个人来说很简单明了.
谢谢
因此,目前GoogleAppEngineLauncher指向包含我的app.yaml文件的目录,以及其他几个目录 - 假设它们是目录A,B和C.如果A和B包含应用程序使用的python文件,模板文件等,但目录C不包含任何代码(它只是一个包含随机内容的misc目录),在部署代码时它是否仍会上传?
这是我的app.yaml文件:
application: myapp
version: 1
runtime: python
api_version: 1
handlers:
- url: /stylesheet
static_dir: stylesheet
- url: /images
static_dir: images
- url: /.*
script: main.py
Run Code Online (Sandbox Code Playgroud) 在我的本地开发环境中,当已添加到任务队列的App Engine任务遇到错误时,将重试该任务直到成功.但是,在生产环境中,它不是.我认为正在发生的是,因为我在urls.py中有一个自定义500处理程序,所有错误都被此捕获并且500错误从未冒泡到顶部.
这实际上可能是我的任务没有被重试的原因吗?如果是这样,有没有办法防止这种情况发生?我只希望处理程序500视图捕获错误,如果请求是用户生成的,而不是后端任务(对于那些,我希望错误冒泡并强制重试).
我正在使用App Engine中的高性能图像服务功能来提供blobstore中的图像.但是,我希望用户能够修改这些图像(例如旋转,裁剪等),然后将这些更改写回blobstore,覆盖原始blob.我知道我可以写入blobstore中的新blob,如下所示:http://code.google.com/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore
但我没有看到覆盖现有blob的方法.这在App Engine中是否可行?
我的用例如下:
blobstore ×2
image ×2
python ×2
closures ×1
credit-card ×1
deployment ×1
django ×1
eclipse ×1
google-maps ×1
httprequest ×1
infowindow ×1
ios8 ×1
javascript ×1
listener ×1
macos ×1
ocr ×1
pydev ×1
regex ×1
request ×1
safari ×1
task ×1
task-queue ×1
urlfetch ×1