小编The*_*aan的帖子

Dart中的Python中的通用模板字符串

在python中,我经常使用字符串作为模板,例如

templateUrl = '{host}/api/v3/{container}/{resourceid}'  
params = {'host': 'www.api.com', 'container': 'books', 'resourceid': 10}  
api.get(templateUrl.format(**params))  
Run Code Online (Sandbox Code Playgroud)

这允许简单的基类设置等。我怎样才能在飞镖中做同样的事情?

我假设我需要创建一个实用程序函数来解析模板并手动替换,但真的希望有一些可以使用的东西。

也许是一个 TemplateString 类,其format方法采用Map名称/值对替换为字符串。

注意:目标是拥有一个通用的“格式”或“插值”功能,不需要事先知道模板中将存在哪些标签或名称。

进一步说明:模板本身在设置时并未解析。具体来说,模板在代码中的一个地方定义,然后在许多其他地方使用。

string stringtemplate dart

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

我应该为转换存储UTC时间戳或本地时间

我正在研究一项功能,该功能可以确定有多少工人值班,并为他们的轮班时钟(或没有计时).

工作人员"进入"和"退出"以及这些事件的时间戳将以UTC格式存储,因为这似乎是最多出现的建议.

但是班次从固定的当地时间开始,因此例如一个班次将始终在07:00开始,而不管夏令时,并且例如在14:00结束.

轮班工人被"分配"到班次.

第一个要求是能够知道有多少工人在这个时间点"轮班"(他们的班次) - 一种状态检查.

第二个要求是能够获得过去一天的报告,例如个体工人的报告(整个轮班值班的工人,是他迟到,他们是否迟到,需要加班等等) )

因此,不要假设一切都只在一个时区内,我们的想法是将时区与变速的定义一起存储在数据库中(班次记录可能包含本地开始时间,结束时间和当地时区)名称".)

问题1:建议使用哪种格式存储本地时区?有没有办法可以存储轮班的开始/结束时间,这样我就可以编写一个SQL查询,可以将这些时间与提供的UTC时间进行比较.

问题2:还有其他建议吗?我应该将时钟输入/输出时间存储为本地与移位开始/结束时间相同吗?或者我应该做一些魔法并将所有内容存储为UTC时间...但是如果将其存储为"2:00 UTC",那么如何计算当前的本地时间开始时间....将其转换为本地时间需要永远是相同的,例如当地时间7点,无论DST ....

database postgresql timezone time-and-attendance

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

使用S3上传但不允许公共访问

我的想法是创建一个 S3 存储桶以允许用户上传二进制对象。下一步是确认上传,然后 API 将启动文件处理。

为了使其更安全,客户端将首先请求上传位置。然后,API 会在 S3 上为此上传分配并预先创建一个一次性使用目录,并在该目录上设置访问策略,以允许将文件转储到该目录中(但最好不要读取甚至覆盖)。

客户端确认后,API 启动处理和清理。

我面临的问题是身份验证和授权。最简单的是允许使用难以猜测的存储桶目录进行公共写入,例如

s3://存储桶/年/月/日/UUID/UUID/文件名

添加日期是为了以后清理孤立文件(并且如果数量增长到需要它,可以添加小时/分钟。

除了提供唯一的上传位置之外,第一个 UUID 没有任何意义。第二个标识用户。

整个路径由 API 创建。然后,API 允许用户访问写入该最终目录。(不应允许用户创建此目录)。

我遇到的问题是,从谷歌搜索看来,公共可写 S3 存储桶被认为是不好的做法,甚至是可怕的做法。

我还有什么选择?a) 向客户端提供某种访问令牌?b) 为每个上传者创建一个 IAM 帐户(我不想以这种方式与 Amazon 绑定) c) 还有其他选择吗?

PS 是否可以控制客户端可用于从策略创建文件的实际文件名?

amazon-s3 amazon-web-services

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

Flutter - 剪切文本忽略分词

在颤振中,当您使用TextOverflow.clipor时,当TextOverflow.ellipses文本中有多个单词时,它会在单词边框处剪切文本。

然而,当文本数据Text()只有一个长字时,它只是在最后可能的位置剪辑它。

示例:在带有标题的图像上,我不希望标签“Mr Ihaveanunusuallylongsurname”在图像下方仅显示“Mr”,因为除了最后几个字符之外的所有字符都可以容纳。

在此处输入图片说明

在中间的照片中,您可以看到在“先生...:.... 我希望尽可能多Mr Ihaveanunusuallylongsurname地显示在可用空间中以帮助用户识别哪个是哪个”之后有很多可用空间.

如何使 Text() 剪辑忽略分词符,例如文本中只有一个单词时?

class ClippedText extends StatelessWidget {
  final String text;
  final TextAlign textAlign;
  final TextStyle style;
  final int maxLines;

  const ClippedText(this.text,
      {Key key, this.textAlign, this.style, this.maxLines})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Text(
      text,
      style: style,
      textAlign: textAlign,
      maxLines: maxLines ?? 10,
      overflow: TextOverflow.ellipsis,
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:我使用上面的 ClippedText 代替 Text()。通常在未设置 maxLines 时文本换行。然而,为了在使用 ClippedText 时实现这种效果,我需要为封装的 Text 小部件提供一个不为空的 maxLines 的默认值。当未提供 maxLines 时,我无法弄清楚传递给 …

flutter

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