小编Ale*_*erg的帖子

使用DRF在RESTful API中实现RPC

我正在使用Django Rest Framework来呈现RESTful API.我有一个路由器/视图集/序列化器为Person资源创建一个端点:

/api/People/<id>/
Run Code Online (Sandbox Code Playgroud)

我想要某种方式触发对此资源的非幂等操作(例如send-email-to).在不必重新执行大量路由/序列化基础结构的情况下,我必须这样做的一个想法是向序列化器添加一个只写的布尔字段:

class PersonSerializer(serializers.ModelSerializer):
   send_email = serializers.BooleanField(write_only=True, required=False)
Run Code Online (Sandbox Code Playgroud)

然后向模型添加只写属性:

class Person(models.Model):
  ...
  def do_send_email(self, value):
    # We also need to check the object is fully constructed here, I think
    if do_send_email:
        ...
  send_email = property(fset=do_send_email)
Run Code Online (Sandbox Code Playgroud)

然后我可以PATCH到达有效载荷的终点send_email=True.

这是使用REST API完成类似RPC功能的最佳方法吗?这是在DRF中实现这一目标的最佳方法吗?理想情况下,我想解决这个问题,尽可能少地实现(即看看解决方案的代码行数是多少).send-email-to这不是我想要处理的唯一动作.

django rest django-rest-framework

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

AWS Elastic Beanstalk Environment请求关联的“实例配置文件”

在使用Web UI进行AWS Elastic Beanstalk环境管理时,我看到:

如果将实例配置文件与此环境关联,则代码更改部署将更快地完成。

(另请参阅此论坛文章中提到的同一件事:http : //www.infosys.tuwien.ac.at/staff/leitner/cs_study/forum/viewtopic.php? pid= 186#p186

什么是实例配置文件?为什么这有关系?它是如何工作的/正在做什么?

我发现这些文章:

但我仍然不了解实例配置文件。

amazon-ec2 amazon-web-services amazon-iam amazon-elastic-beanstalk

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

使用Django中的另一个查询集的结果过滤查询集

现在我有一个Django查询集,我想根据另一个查询集的结果进行筛选.现在我这样做(并且它有效):

field = 'content_object__pk'
values = other_queryset.values_list(field, flat=True)
objects = queryset.filter(pk__in=values)
Run Code Online (Sandbox Code Playgroud)

其中字段是一个外键的名字pkqueryset.ORM非常智能,可以运行上面的一个查询.

我试图简化这个(即过滤对象列表自己而不是明确说pk):

field = 'content_object'
objects = queryset & other_queryset.values_list(field, flat=True)
Run Code Online (Sandbox Code Playgroud)

但是这会产生以下错误:

AssertionError: Cannot combine queries on two different base models.
Run Code Online (Sandbox Code Playgroud)

进行此类过滤的正确方法是什么?

django django-orm django-queryset

2
推荐指数
2
解决办法
3971
查看次数

在 prefetch_related 之后选择相关

我的模型看起来像:

class Book(models.Model):
    publisher = models.ForeignKey(Publisher) # This is not important

class Baz(models.Model):
    a = models.CharField(max_length=100)

class Page(models.Model):
    book = models.ForeignKey(Book)
    baz = models.ForeignKey(Baz)
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行这样的查询:

[[x.baz.a for x in y.page_set.all()]
for y in Book.objects.all().prefetch_related('page_set', 'page_set__baz')]
Run Code Online (Sandbox Code Playgroud)

我认为 ORM 应该能够执行两个查询: ( Page JOIN Baz) 和Book. 最后的连接应该在 Python 中进行。相反,我看到 ORM 执行了三个查询。我相信我必须知道如何使用select_related,但这也不起作用(select_related之前也没有移动prefetch_related):

Book.objects.all().prefetch_related('page_set', 'page_set__baz').select_related('page_set__baz')
Run Code Online (Sandbox Code Playgroud)

查询(uploads是应用程序):

QUERY = u'SELECT "uploads_book"."id", "uploads_book"."publisher_id" FROM "uploads_book"' - PARAMS = (); args=()
QUERY = u'SELECT "uploads_page"."id", "uploads_page"."book_id", "uploads_page"."baz_id" …
Run Code Online (Sandbox Code Playgroud)

django django-orm django-queryset

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

间隙填充轮廓/线

我有以下图片:

带有缺口轮廓的图像

我想填写它的轮廓(即我想填补此图像中的线条).

我尝试过形态学闭合,但是使用3x3带有10迭代的矩形内核并不会填满整个边框.我也尝试了迭代的21x21内核,1也没有运气.

更新:

我在OpenCV(Python)中尝试过这个:

cv2.morphologyEx(img, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_RECT, (21,21)))
Run Code Online (Sandbox Code Playgroud)

cv2.morphologyEx(img, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_RECT, (3,3)), iterations=10)
Run Code Online (Sandbox Code Playgroud)

scikit-image:

closing(img, square(21))
Run Code Online (Sandbox Code Playgroud)

我的最终目标是拥有整个图像的填充版本,而不会扭曲所覆盖的区域.

python opencv image-segmentation scikit-image image-morphology

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

通配符Django记录

设置Django日志时是否可以使用通配符?

现在我LOGGING看起来像:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'mypack.mod1': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'mypack.mod2': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有一些方法可以避免需要两个部分mypack.mod1mypack.mod2.

python django

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

skimage.transform.warp 或 scipy.ndimage.interpolation.map_coordinates 的 Tensorflow 等效项

Tensorflow 是否相当于skimage.transform.warpscipy.ndimage.interpolation.map_coordinates?我正在寻找某种方法来“根据给定的坐标变换扭曲图像”。

理想情况下,这可以用作对图像执行仿射变换的通用方法。

这是我能找到的最接近的 PR,它是这个问题的一个非常专业的版本。

以下是nolearn 中使用的这些转换的示例

tensorflow

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