我正在使用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
这不是我想要处理的唯一动作.
在使用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
现在我有一个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)
其中字段是一个外键的名字pk
在queryset
.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)
进行此类过滤的正确方法是什么?
我的模型看起来像:
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) 我有以下图片:
我想填写它的轮廓(即我想填补此图像中的线条).
我尝试过形态学闭合,但是使用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)
closing(img, square(21))
Run Code Online (Sandbox Code Playgroud)
我的最终目标是拥有整个图像的填充版本,而不会扭曲所覆盖的区域.
python opencv image-segmentation scikit-image image-morphology
设置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.mod1
和mypack.mod2
.
Tensorflow 是否相当于skimage.transform.warp
或scipy.ndimage.interpolation.map_coordinates
?我正在寻找某种方法来“根据给定的坐标变换扭曲图像”。
理想情况下,这可以用作对图像执行仿射变换的通用方法。
这是我能找到的最接近的 PR,它是这个问题的一个非常专业的版本。
以下是nolearn 中使用的这些转换的示例。
django ×4
django-orm ×2
python ×2
amazon-ec2 ×1
amazon-iam ×1
opencv ×1
rest ×1
scikit-image ×1
tensorflow ×1