我正在尝试按百分比创建垂直定位的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%的垂直位置.我错过了什么?提前致谢!
我正在为一个返回字典列表的函数编写单元测试.检查输出是否符合预期的最佳方法是什么?这里,"按预期"表示列表中的字典具有相同的键和值,而不管字典中键的顺序,或列表中字典的顺序.所以像这样:
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,我对测试有点新意.我经常看到测试用本地方法替换外部依赖项,如下所示:
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)
我在这个问题中看到这被称为"猴子修补" .我还看到"模拟"这个词与"钱修补"或者似乎非常相似的场景一起使用了很多.
这两个概念有什么区别吗?
我可以用 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) 即使我的观点重写,我也会收到以下错误.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)
编辑 - 附加信息: …
我正在处理布局不合理的 Excel 表格,我正试图解析这些表格并将其写入数据库。
每个工作表可以有多个表。虽然这些可能的表格的标题是已知的,但哪些表格将出现在任何给定的工作表上,但它们在工作表上的确切位置也不是(表格没有以一致的方式对齐)。我添加了两张可能的工作表布局的图片来说明这一点:此布局有两个表格,而这个布局包含第一个表格的所有表格,但不在同一位置,另外还有一个表格。
我所知道的:
我的问题有没有一种干净的方法可以使用一些 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) 这个问题是关于从块内部返回而提出的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) 我使用 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)
我想知道是否有更好的方法来做到这一点。
我正在编写一个进程(称为请求进程),它将定期发送 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 中的行为?
我有一个lambda函数,运行时间约为10分钟。Lambda相当长的时间,但鉴于我们当前的需求/设置,这是它执行我们需要做的最简单的方法。
但是,我们的Lambda代码中最近出现了一个错误,使lambda陷入了困境,基本上使DOS成为了我们自己的服务器。这是我意识到如果需要的话,我不知道如何终止此过程(vs等待它结束/超时)。所以...
有没有办法从AWS控制台终止正在运行的Lambda进程?有没有办法通过AWS CLI做到这一点?
python ×7
django ×2
python-3.x ×2
testing ×2
asynchronous ×1
aws-lambda ×1
concurrency ×1
css ×1
excel ×1
javascript ×1
mocking ×1
pandas ×1
position ×1
reactjs ×1
tornado ×1
unit-testing ×1