小编Jad*_*d S的帖子

相对父母,绝对按百分比垂直定位?

我正在尝试按百分比创建垂直定位的DIV.我有父容器设置为相对,内容div设置为绝对.当我使用像素定位内容div时,这可以正常工作,但是当我尝试百分比时,百分比被忽略:

.container {
position: relative;
}


.content {
position: absolute;
left: 10%;
top: 50%;
}


<div class="container"><div class="content"> This is the content div. It should be 10% from the left of the container div.
</div></div>
Run Code Online (Sandbox Code Playgroud)

内容div显示在页面顶部,忽略50%的垂直位置.我错过了什么?提前致谢!

css position

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

如果单词测试函数输出列表的字典?

我正在为一个返回字典列表的函数编写单元测试.检查输出是否符合预期的最佳方法是什么?这里,"按预期"表示列表中的字典具有相同的键和值,而不管字典中键的顺序,或列表中字典的顺序.所以像这样:

expect_output = [ {"c":4} , {"a" : 4 , "b" : 3}]
actual_ouput = [{"b" : 3, "a" : 4 }, {"c":4}]
# some function that would return true in this case.
Run Code Online (Sandbox Code Playgroud)

python testing python-3.x

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

模拟和猴子修补有什么区别?

我使用python,我对测试有点新意.我经常看到测试用本地方法替换外部依赖项,如下所示:

import some_module

def get_file_data():
  return "here is the pretend file data"

some_module.get_file_data = get_file_data

# proceed to test
Run Code Online (Sandbox Code Playgroud)

我在这个问题中看到这被称为"猴子修补" .我还看到"模拟"这个词与"钱修补"或者似乎非常相似的场景一起使用了很多.

这两个概念有什么区别吗?

python testing unit-testing monkeypatching mocking

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

是否可以将道具传递给样式组件的“css”元素?

我可以用 styled.div 做到这一点

styled.div`
    color: ${props=> props.color || 'black'};
`
Run Code Online (Sandbox Code Playgroud)

如何对样式化组件 css 元素执行类似操作?

const BlackBGCSS = css`
    color: ${props=> props.color || 'black'};
`
Run Code Online (Sandbox Code Playgroud)

现在我的解决方案是创建一个工厂函数

const BlackBGCSS = (props)=> css`
    color: ${props=> props.color || 'black'};
`
Run Code Online (Sandbox Code Playgroud)

javascript reactjs styled-components

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

"AssertionError:无法应用DjangoModelPermissions",即使在视图中定义了get_queryset也是如此

即使我的观点重写,我也会收到以下错误.get_queryset()

AssertionError: Cannot apply DjangoModelPermissions on a view that does not set `.queryset` or have a `.get_queryset()` method.
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

class PlayerViewSet(viewsets.ModelViewSet):

    serializer_class = PlayerSerializer

    def get_queryset(self):
        try:
            quality = self.kwargs['quality'].lower()
            print("Getting Player for %s"%quality)
            return Player.objects.filter(qualities__contains=quality)
        except:
            # todo: send out a 404
            print("No Players found for this quality :(")
            pass
Run Code Online (Sandbox Code Playgroud)

我的settings.py:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 附加信息: …

python django django-rest-framework

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

如何从包含多个表的 excel 表中解析数据帧(使用 Python,可能是 Pandas)

我正在处理布局不合理的 Excel 表格,我正试图解析这些表格并将其写入数据库。

每个工作表可以有多个表。虽然这些可能的表格的标题是已知的,但哪些表格将出现在任何给定的工作表上,但它们在工作表上的确切位置也不是(表格没有以一致的方式对齐)。我添加了两张可能的工作表布局的图片来说明这一点:此布局有两个表格,而这个布局包含第一个表格的所有表格,但不在同一位置,另外还有一个表格。

我所知道的:

  1. 所有可能的表头,所以每个单独的表都可以通过它的头来识别
  2. 表格由空白单元格分隔。他们不互相接触。

我的问题有没有一种干净的方法可以使用一些 Python 模块(例如 Pandas)来处理这个问题?

我目前的做法

我目前正在转换为 .csv 并解析每一行。我围绕空白单元格拆分每一行,并处理该行的第一部分(应该属于最左边的表格)。该行的其余部分排队,稍后以相同的方式处理。然后我阅读了这个first_part并检查它是否是标题行。如果是,我用它来识别我正在处理哪个表(它存储在一个 global 中current_df)。不是标题行的后续行被送入该表(这里我pandas.DataFrame用于我的表)。

到目前为止的代码如下(大部分不完整且未经测试,但它应该传达上述方法):

class DFManager(object): # keeps track of current table and its headers
    current_df = None
    current_headers = []

    def set_current_df(self, df, headers):
        self.current_headers = headers
        self.current_df = df


def split_row(row, separator):
    while row and row[0] == separator:
       row.pop(0)
    while row and row[-1] == separator:
       row.pop()

    if separator in …
Run Code Online (Sandbox Code Playgroud)

python excel pandas

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

如果在“with”块内完成,“yield”-ing 是否会触发 __exit__ 函数?

这个问题是关于从块内部返回而提出的with,但是屈服怎么样?

__exit__如果下次调用该函数,该块是否会被调用yield,然后__enter__再次被调用?或者它是否等待生成器退出 with 块(或返回)

举个例子 :

def tmp_csv_file():
    tmp_path = 'tmp.csv'
    with open(tmp_path, 'w+') as csv_file:
        yield csv_file # will this close the file?
    os.remove(tmp_path)
Run Code Online (Sandbox Code Playgroud)

python

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

Django:如何预取模型实例的相关内容。也许通过包装查询集?

我使用 Django Rest 框架,并且我的模型关系中有不错的嵌套。

我正在努力优化我的查询。我的许多函数都会消耗或操作模型的单个实例,并且通常在数据流的更下游,事实证明我需要一些预取。一个典型的例子是 DRF 序列化器。这是一个例子。

@api_view(['GET'])
def fetch_user_profile(request):
    profile = request.user.profile # has many nested relationships

    return Response(UserProfileSerializer(profile).data, status=status.HTTP_200_OK) # this ends up taking many queries
Run Code Online (Sandbox Code Playgroud)

我已经看到一些解决方案建议在上下文中传递查询集,prefetch_related尽管我无法全面了解它是如何工作的(我只找到了几个部分讨论它的地方,可能会打开一个完整的其他地方的问题)。

一个简单的修复(并且可以推广到序列化器之外的修复)是,如果我可以有一个包装函数将我的实例包装在查询集中,然后对其调用预取,将其传递到序列化器中。

就像是:

def queryset_wrap(instance):
    return type(instance).objects.filter(id=instance.id)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来做到这一点。

python django query-optimization django-rest-framework

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

如何在 Tornado 中实现可中断的 time.sleep?

我正在编写一个进程(称为请求进程),它将定期发送 HTTP 请求,但可以随时被另一个线程/进程(称为主进程)中断。最初我使用线程池来处理请求multiprocessing.Event对象在发送下一个请求之前等待适当的延迟:

# in the main process
poison_pill_event= multiprocessing.Event()

# pass "poison_pill_event" to the requesting process

# in the requesting process which sends requests every wait_interval seconds
poison_pill_event.wait(timeout=time_interval)
Run Code Online (Sandbox Code Playgroud)

这将允许我拥有 time.sleep() 的可中断版本,以防我需要终止进程。否则,它将允许代码在超时后继续运行。

最近,我发现考虑到我所需的吞吐量和资源,异步设计是更合适的替代方案,我尝试使用 Tornado。开始时gen.sleep用作非阻塞等待,但不能被中断。然后切换到使用Toro.Event 的等待功能以允许中断。但是,Toro.Eventdelay与 multiprocessing.Event 不同timeout处在于它引发 Timeout 异常并因此中断执行。另外,我不相信我可以在进程之间共享它,所以我现在试图将我的主进程与请求进程合并,但这应该不会太难。

所以我的问题是如何重新模拟我multiprocessing.Event.wait在 Tornado 中的行为?

python concurrency asynchronous tornado python-3.x

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

如何终止/终止正在运行的AWS Lambda函数?

我有一个lambda函数,运行时间约为10分钟。Lambda相当长的时间,但鉴于我们当前的需求/设置,这是它执行我们需要做的最简单的方法。

但是,我们的Lambda代码中最近出现了一个错误,使lambda陷入了困境,基本上使DOS成为了我们自己的服务器。这是我意识到如果需要的话,我不知道如何终止此过程(vs等待它结束/超时)。所以...

有没有办法从AWS控制台终止正在运行的Lambda进程?有没有办法通过AWS CLI做到这一点?

amazon-web-services aws-lambda

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