小编Jam*_*Lin的帖子

Django:我应该将网页分成不同的应用程序吗?

我正在开发一个商业目录网站,它有

  • 主页
  • 搜索结果页面
  • 列表页面

我目前处于设计阶段,有人建议将页面/功能分成不同的应用程序,例如。

  • 搜索结果
  • 清单

这是 Django 社区的最佳实践吗?或者你会怎么做?

django project

1
推荐指数
1
解决办法
174
查看次数

javascript关闭不起作用?

我有以下代码:

for (var i in listings){
  var listing = listings[i];
  map.addMarker({
    lat: listing.GeographicLocation.Latitude,
    lng: listing.GeographicLocation.Longitude,
    title: listing.Title,
    click: function(e){
      (function(listing){
         console.log(listing.Title);
      })(listing);
    },  
  });
}
Run Code Online (Sandbox Code Playgroud)

当我点击标记时,我总是得到最后一个列表的标题.

javascript closures

1
推荐指数
1
解决办法
955
查看次数

Python如何使用完整的堆栈信息冒泡异常

看下面的代码

def ex_string(ex):
    return "Error:{} Traceback:{}".format(ex, traceback.format_exc())

def map_values(listing):
    ...
    obj = listing['value']
    ...

def process_listing(listing):
    try:
        listing = map_values(listing)
    except Exception as ex:
        do_some_handling(listing)
        print ex_string(ex)  # this stack shows actual line inside map_values
        raise ex

def start():
    for listing in listings:
        try:
            process_listing(listing)
            save_listing(listing)
        except Exception as ex:
            error = ex_string(ex)  #this stack shows map_values function only
            log_error(error)
Run Code Online (Sandbox Code Playgroud)

如上所述,当listing不包含'value'元素时,我不知道哪一行导致了问题,我从日志中知道的所有信息都在函数内部的某个地方map_values,如何从首次引发异常的位置获取完整的堆栈跟踪?在这种情况下obj = listing['value']

python

1
推荐指数
1
解决办法
1744
查看次数

Python 最有效的数据结构来保存值并检查值是否存在

假设我有数百万个字符串 ID,我想将它们存储在一个变量中并检查一个 ID 是否存在,我可以想到两种方法,list以及dict

使用list

>>> timeit_a = timeit.Timer('"9999999" in a', setup='a = [str(i) for i in range(3000000)]')
>>> timeit_a.timeit(1)
0.06293477199994868
Run Code Online (Sandbox Code Playgroud)

使用dict

>>> timeit_b = timeit.Timer('"9999999" in b', setup='b = {str(i): None for i in range(3000000)}')
>>> timeit_b.timeit(1)
3.860999981952773e-06  # equal to 0.00000386099
Run Code Online (Sandbox Code Playgroud)

正如我们所看到的,使用速度dict要快得多,但我觉得用dict一堆None仅仅为了利用键的哈希图而

有没有更规范、更优雅的方法来做到这一点?

python

1
推荐指数
1
解决办法
1080
查看次数

Sorl-thumbnail + DigitalOcean + Amazon S3 缓慢

由于 AWS EC2 有点贵,我尝试迁移到 DigitalOcean,但我发现从 DigitalOcean 渲染带有缩略图的页面有点慢,Amazon S3 是文件存储。(从 EC2 运行非常快,我假设 Amazon 内的流量)

症状:

  1. 由于缩略图创建,初始加载非常非常缓慢
  2. 后续加载也很慢,但不如初始加载慢

我有以下设置:

STATICFILES_STORAGE = DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

THUMBNAIL_KVSTORE = values.Value('sorl.thumbnail.kvstores.cached_db_kvstore.KVStore')
Run Code Online (Sandbox Code Playgroud)

我可以看到 sorl-thumbnail 在数据库的 KVStore 中生成缓存值。但在我看来,它仍然会在呈现缩略图之前检查 S3 上的文件是否存在。这与文档相矛盾:

值得注意的是,如果在键值存储中找到缩略图键,则 sorl-thumbnail 不会检查源或缩略图是否存在。

我在 SO 和 google 上搜索过,看到了一些相关的帖子,但他们已经 4 岁了,似乎没有确凿的答案。

sorl-thumbnail

0
推荐指数
1
解决办法
578
查看次数

与像Python这样的其他语言相比,Golang中的WaitGroup是否落后一步?

我是golang的新手,我正在尝试使用goroutine,虽然同时运行它很容易,但我对golang"加入线程"的方式感到有些惊讶WaitGroup.

据我所知,goroutine需要引用WaitGroup对象来调用Done(),这意味着,我必须让goroutine接受一个WaitGroup对象,或者让WaitGroup对象全局到goroutine.

但是在Python之类的其他语言中,你称之为thread.join()"控制"部分位于线程代码之外.

就像我说的那样,我对golang很新,我不知道为什么它是这样设计的,有人可以就这方面有所了解吗?

更新:我希望这个论点不是基于'Goroutine vs Thread',在一天结束时他们都试图实现(某种)'并发',我的问题更多的是关于控制程序流程.

python go

-1
推荐指数
1
解决办法
618
查看次数

标签 统计

python ×3

closures ×1

django ×1

go ×1

javascript ×1

project ×1

sorl-thumbnail ×1