小编cof*_*der的帖子

Python类方法的示例用例是什么?

我已经阅读了Python中的什么类方法?但那篇文章中的例子很复杂.我正在寻找Python中类方法的特定用例的清晰,简单,简单的例子.

您能说出一个小的,具体的示例用例,其中Python类方法将是该工作的正确工具吗?

python class class-method

59
推荐指数
5
解决办法
4万
查看次数

AWS Lambda"在完成请求之前退出流程"

我试图调用DynamoDB客户端方法并从DynamoDB表中获取一个项目.我正在使用AWS Lambda.但是,我一直收到消息:

"在完成请求之前退出流程."

我已经增加了超时以确保,但处理时间小于超时.有什么建议?

console.log('Loading event');
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

exports.handler = function(event, context) {
dynamodb.listTables(function(err, data) {
});

var params = {
    "TableName": "User",
     "Key":
        {"User Id"   : {"S":event.objectId}
    },
    "AttributesToGet"   : ["First Name","Last Name", "Latitude", "Longitude"],
    "ConsistentRead"    : true
  }


   dynamodb.getItem(params, function(response,result) {
    response.on('data', function(chunk){
    console.log(""+chunk);
    console.log("test1")
    context.done(result);
});
result.on('ready', function(data){
    console.log("test2")
    console.log("Error:" + data.error);
    console.log("ConsumedCapacityUnits:" + data.ConsumedCapacityUnits);
     context.done('Error',data);
    // ...
});
});
};
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda

55
推荐指数
3
解决办法
5万
查看次数

如何使用CSS定位固定的可变高度标题和可滚动的内容框?

我正在尝试制作一个带有固定标题和可滚动内容区域的网页.当标题具有已知高度时,这是微不足道的,但是当标题流畅时,我正在努力寻找解决方案.

我想要的布局是:

--------------
head
--------------
content
--------------
Run Code Online (Sandbox Code Playgroud)

其中"head"是其内容需要的高度,"content"没有最小高度,但在变为可滚动之前将达到视口底部的最大高度.

这些天在纯CSS中这可能吗?我的目标是IE8 +.

为了澄清我想要的东西,如果我知道标题的高度,我会怎么做:

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">

body {
    margin: 0;
}

#head {
    background: yellow;
    height: 20px; /* I can't rely on knowing this. */
}

#content {
    background: red;
    position: absolute;
    top: 20px; /* here also */
    bottom: 0;
    width: 100%;
    overflow: auto;
}

        </style>
    </head>
    <body>
        <div id="head">some variable height content</div>
        <div id="content">
            scrollable content<br/>
            scrollable content<br/>
            scrollable content<br/>
            scrollable content<br/>
            scrollable content<br/>
            scrollable content<br/> …
Run Code Online (Sandbox Code Playgroud)

css

50
推荐指数
4
解决办法
3万
查看次数

什么时候应该使用自定义管理器而不是Django中的自定义QuerySet?

在Django中,自定义管理器是组织可重用查询逻辑的好方法.该文件指出,有可能是您想自定义管理两方面的原因:添加额外的管理方法,和/或修改初始查询集经理的回报.

但是,它继续描述了如何创建自定义QuerySet,以及可以通过数据模型直接从数据模型访问这些查询集QuerySet.as_manager().QuerySet.as_manager()创建的Manager实例与前一个示例中的PersonManager几乎完全相同.

在自定义Manager和/或自定义QuerySet之间如何组织逻辑似乎有很大的灵活性.有人可以解释我应该决定何时使用其中一种的原则吗?

python django orm django-managers

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

如何使用自定义管理器与相关对象?

我有一个自定义经理.我想将它用于相关对象.我在docs中找到了 use_for_related_fields.但它不像我使用它的方式工作:

class RandomQueryset(models.query.QuerySet):

    def randomize(self):       
        count = self.count()
        random_index = random.randint(0, count - 1)
        return self.all()[random_index]


class RandomManager(models.Manager):

    use_for_related_fields = True

    def get_query_set(self):
        return RandomQueryset(self.model, using=self._db)

    def randomize(self):
        return self.get_query_set().randomize()
Run Code Online (Sandbox Code Playgroud)

我用它作为一个型号:

>>> post = PostPages.default_manager.filter(image_gallery__isnull=False).distinct().randomize()
Run Code Online (Sandbox Code Playgroud)

并试图对m2m相关对象做同样的事情:

>>> post.image_gallery.randomize()
Run Code Online (Sandbox Code Playgroud)

出了错误:

AttributeError: 'ManyRelatedManager' object has no attribute 'randomize'
Run Code Online (Sandbox Code Playgroud)

是否可以像我一样使用自定义管理器?如果是这样,你如何使它工作?

编辑

我的模特:

class ShivaImage(models.Model, ImageResizing):
    image = models.ImageField(upload_to='img')
    slide_show = models.BooleanField() 
    title = models.CharField(max_length=100)
    text = models.TextField(max_length=400)
    ordering = models.IntegerField(blank=True, null=True)

    objects = RandomManager()


class PostPages(models.Model):
    image_gallery = models.ManyToManyField(ShivaImage, blank=True,
                                       related_name='gallery',) …
Run Code Online (Sandbox Code Playgroud)

django django-orm django-managers

41
推荐指数
3
解决办法
2万
查看次数

查询dynamodb Local中的全局二级索引

我正在使用这些参数在DynamoDB中创建一个表和GSI,根据文档:

configId是表的主键,我使用它publisherId作为GSI的主键.(为简洁起见,我删除了一些不必要的配置参数)

var params = {
    TableName: 'Configs',
    KeySchema: [ 
        {
            AttributeName: 'configId',
            KeyType: 'HASH',
        }
    ],
    AttributeDefinitions: [
        {
            AttributeName: 'configId',
            AttributeType: 'S',
        },
        {
            AttributeName: 'publisherId',
            AttributeType: 'S',
        }
    ],
    GlobalSecondaryIndexes: [ 
        { 
            IndexName: 'publisher_index', 
            KeySchema: [
                {
                    AttributeName: 'publisherId',
                    KeyType: 'HASH',
                }
            ]
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

我用这个查询这个表:

{ TableName: 'Configs',
  IndexName: 'publisher_index',
  KeyConditionExpression: 'publisherId = :pub_id',
  ExpressionAttributeValues: { ':pub_id': { S: '700' } } }
Run Code Online (Sandbox Code Playgroud)

但我一直收到错误:

"ValidationException:一个或多个参数值无效:条件参数类型与模式类型不匹配"

在文档中,它指定主要KeyType可以是HASHRANGE,并且您 …

node.js amazon-dynamodb aws-sdk

23
推荐指数
3
解决办法
2万
查看次数

让scss-lint忽略特定的行

你怎么告诉scss-lint忽略.scss文件中的特定行?

即你能做这样的事情:

.example {
  display: block !important;  // sass-lint: ignore
}
Run Code Online (Sandbox Code Playgroud)

lint sass

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

SaltStack:在watch语句中,如何指定应该监视所有文件的目录?

我想在/etc/nginx/conf.d创建或修改目录中的任何文件时重新启动nginx服务.

该目录中有许多文件,而不是指定特定文件,我想观察所有更改.

我试过这个:

nginx:
  pkg.installed:
    - name: nginx
  service:
    - running
    - enable: True
    - restart: True
    - watch:
      - file: /etc/nginx/nginx.conf
      - file: /etc/nginx/conf.d
      - pkg: nginx
Run Code Online (Sandbox Code Playgroud)

但这条线- file: /etc/nginx/conf.d并没有做我想要的.

这是错误:

      ID: nginx
Function: service.running
  Result: False
 Comment: The following requisites were not found:
                             watch:
                                 file: /etc/nginx/conf.d
 Changes: 
Run Code Online (Sandbox Code Playgroud)

我也尝试了许多变化,包括尾部斜线,但它们都不起作用.

应该- file: /etc/nginx/conf.d/改变什么?

service nginx salt-stack

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

Django REST框架+ Django REST Swagger + ImageField

我创建了一个带有ImageField的简单模型,我想用django-rest-framework + django-rest-swagger创建一个api视图,该文档已记录并能够上传文件.

这是我得到的:

models.py

from django.utils import timezone
from django.db import models

class MyModel(models.Model):

    source = models.ImageField(upload_to=u'/photos')
    is_active = models.BooleanField(default=False)
    created_at = models.DateTimeField(default=timezone.now)

    def __unicode__(self):
        return u"photo {0}".format(self.source.url)
Run Code Online (Sandbox Code Playgroud)

serializer.py

from .models import MyModel

class MyModelSerializer(serializers.ModelSerializer):

    class Meta:
        model = MyModel
        fields = [
            'id',
            'source',
            'created_at',
        ]
Run Code Online (Sandbox Code Playgroud)

views.py

from rest_framework import generics
from .serializer import MyModelSerializer

class MyModelView(generics.CreateAPIView):
    serializer_class = MyModelSerializer
    parser_classes = (FileUploadParser, )

    def post(self, *args, **kwargs):
        """
            Create a MyModel
            ---
            parameters:
                - name: source
                  description: …
Run Code Online (Sandbox Code Playgroud)

python django swagger django-rest-framework django-swagger

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

Python中的迭代器(iter())函数.

对于字典,我可以iter()用来迭代字典的键.

y = {"x":10, "y":20}
for val in iter(y):
    print val
Run Code Online (Sandbox Code Playgroud)

当我有迭代器如下,

class Counter:
    def __init__(self, low, high):
        self.current = low
        self.high = high

    def __iter__(self):
        return self

    def next(self):
        if self.current > self.high:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样使用它

x = Counter(3,8)
for i in x:
    print x
Run Code Online (Sandbox Code Playgroud)

也不

x = Counter(3,8)
for i in iter(x):
    print x
Run Code Online (Sandbox Code Playgroud)

但这样呢?

for c in Counter(3, 8):
    print c
Run Code Online (Sandbox Code Playgroud)

功能的用途是iter()什么?

添加

我想这可能是如何iter() …

python iterator

17
推荐指数
2
解决办法
4万
查看次数