小编Ali*_*Tou的帖子

GitHub 存储库中的“通过上传添加文件”提交消息是什么?

我看到很多在GitHub上这个仓库的提交信息:Add files via upload

在此处输入图片说明

但我无法弄清楚这个(可能)自动提交消息是如何制作的。我环顾四周寻找线索,但找不到任何将此提交消息设置为默认值或其他内容的参考。

为什么以及如何使用此消息完成某些提交?

commit-message github

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

在Django Rest Framework中访问.data后更新序列化程序中的值

我有一个Post类的序列化器,它有一个image和一个link属性.

mediaFileFieldlink是一个URLField是一个网址到别的地方我分享我的帖子(在另一个网站.)

我想要:

  1. 提交我的帖子数据(文字和图片)

  2. 访问提交文件的URL以用于在其他位置共享它.

  3. link找到后更新值.

这是我试过的:

post = PostCreateSerializer(data=request.data, context={'request': request})
post.is_valid(raise_excpetions=True)
post.save()
media_url = post.data.get('media')
link = find_link_value(media_url)
post.link = link
post.save()
Run Code Online (Sandbox Code Playgroud)

这引起了例外.说:

 You cannot call `.save()` after accessing `serializer.data`.If you need to access data before committing to the database then inspect 'serializer.validated_data' instead.
Run Code Online (Sandbox Code Playgroud)

问题是当我使用post.validated_data.get('media')而不是.data,它不会给我的网址.它给了我一个InMemoryUploadedFile对象,当然,没有任何路径和网址.

我以为我可以使用object的name属性InMemoryUploadedFile来创建url(文件实际上保存在磁盘中,我想知道为什么会这样InMemory!)但是当名称重复时,磁盘和url中文件的真实名称与它的原始名称不同(例如,name.jpgname_aQySbJu.jpg)我不能将它用于我的目的.

如何才能访问该上传文件的URL,并 …

django django-models django-serializer django-rest-framework

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

使用 python 的 re 正则表达式从 URL 中提取域名

我想输入一个 URL 并提取域名,该域名是 http:// 或 https:// 之后的字符串,包含字符串、数字、点、下划线或破折号。

我编写了正则表达式并使用了 python 的re模块,如下所示:

import re
m = re.search('https?://([A-Za-z_0-9.-]+).*', 'https://google.co.uk?link=something')
m.group(1)
print(m)
Run Code Online (Sandbox Code Playgroud)

我的理解是,m.group(1)会提取re.search中()之间的部分。

我期望的输出是:google.co.uk 但我得到的是:

<_sre.SRE_Match object; span=(0, 35), match='https://google.co.uk?link=something'>
Run Code Online (Sandbox Code Playgroud)

你能指出我如何使用re来实现我的要求吗?

python regex python-3.x

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

从 GitLab CI 作业向 Kubernetes Pod 发送信号

我使用的是自托管 Kubernetes 集群,并且没有使用 GitLab 的 Kubernetes 集成。SIGHUP在我的 GitLab CI 工作中,我正在更改关联 ConfigMap 中 Prometheus 部署的配置,并且我希望通过向 Prometheus 进程发送信号来让 Prometheus 了解新配置。这是我更新 ConfigMap 并发送信号的作业脚本:

for x in *; do kubectl get configmap prometheus-config -o json | jq --arg name "$(echo $x)" --arg value "$(cat $x)" '.data[$name]=$value' | kubectl apply -f -; done;
kubectl exec deployments/prometheus -- /bin/sh -c "/bin/pkill -HUP prometheus"
Run Code Online (Sandbox Code Playgroud)

这种方法在我的本地终端上运行良好。在手动更改 ConfigMap 并通过上述命令发送信号后,我可以在 Prometheus 中看到之后的效果。

问题是,当我将这些命令放入我的 GitLab CI 作业脚本中时,它似乎什么也没做。该命令成功运行,我的 CI 工作已完成,但 Prometheus 中没有刷新任何内容。

我想知道 GitLab 执行其作业的方式(shell 的非交互性等)是否会导致这种行为,但我不知道我能对此做些什么。

我还尝试kubectl exec在 …

gitlab-ci kubernetes kubectl

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