小编Ste*_*fen的帖子

PIL图像对象上的Python副本

我正在尝试创建一组缩略图,每个缩略图都与原始图像分开缩小.

image = Image.open(path)
image = image.crop((left, upper, right, lower))
for size in sizes:
  temp = copy.copy(image)
  temp.thumbnail((size, height), Image.ANTIALIAS)
  temp.save('%s%s%s.%s' % (path, name, size, format), quality=95)
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎工作正常,但在测试时我发现一些图像(我不知道它们有什么特别之处,可能仅针对PNG)引发了这个错误:

/usr/local/lib/python2.6/site-packages/PIL/PngImagePlugin.py in read(self=<PIL.PngImagePlugin.PngStream instance>)
line: s = self.fp.read(8)
<type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'read' 
Run Code Online (Sandbox Code Playgroud)

没有copy()这些图像工作就好了.

我可以为每个缩略图重新打开并裁剪图像,但我宁愿有更好的解决方案.

python copy python-imaging-library

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

如何更新SvelteKit中的页面和查询参数?

我有一个带有搜索字段的页面。如果使用查询参数(例如?word=cat)访问,页面应加载显示结果并填充搜索字段。如果完成搜索,结果和查询参数(浏览器历史记录)应该更新。

我发现更新查询参数的唯一方法是goto,所以我的尝试是:

<script context="module">
  export async function load({ page, fetch }) {
    const response = await fetch(`/data.json?${page.query.toString()}`)
    if (response.ok) {
      return {
        props: {
          word: page.query.get('word'),
          body: await response.json()
        }
      }
    }
  }
</script>

<script>
  import { goto } from '$app/navigation'
  import { page } from '$app/stores'

  export let word
  export let body

  function search() {
    $page.query.set('word', word)
    goto(`?${$page.query.toString()}`)
  }
</script>

<main>
  <form on:submit|preventDefault={search}>
    <input bind:value={word}>
  </form>
  <!-- ... -->
</main>
Run Code Online (Sandbox Code Playgroud)

这可行,但有时会因为更新查询参数而陷入困境。由于某种原因,load在这些情况下不会被调用。我可以通过await invalidate …

svelte sveltekit

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

如何修复“调用 webhook“webhook.cert-manager.io”失败”?

我正在尝试设置 K3s 集群。当我有一个主控和代理设置时,证书管理器没有任何问题。现在我正在尝试使用嵌入式 etcd 进行 2 主设置。我为两个虚拟机打开了 TCP 端口64432379-2380执行了以下操作:

VM1: curl -sfL https://get.k3s.io | sh -s server --token TOKEN --cluster-init
VM2: curl -sfL https://get.k3s.io | sh -s server --token TOKEN --server https://MASTER_IP:6443
Run Code Online (Sandbox Code Playgroud)
# k3s kubectl get nodes
NAME  STATUS   ROLES                       AGE    VERSION
VM1   Ready    control-plane,etcd,master   130m   v1.22.7+k3s1
VM2   Ready    control-plane,etcd,master   128m   v1.22.7+k3s1
Run Code Online (Sandbox Code Playgroud)

安装 cert-manager 工作正常:

# k3s kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml
# k3s kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS
cert-manager-b4d6fd99b-c6fpc               1/1     Running
cert-manager-cainjector-74bfccdfdf-gtmrd   1/1 …
Run Code Online (Sandbox Code Playgroud)

kubernetes cert-manager k3s

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

在PostgreSQL事务块中获取ID

我想总结我的所有交易,应该是要么全有要么全无成BEGINCOMMIT,但我不知道怎么样在下列情况下做到这一点.

我有3个表,一个用于图像,一个用于albums它们,一个用于它们之间的关系,即album_images.系统的工作方式是用户可以创建一个相册并在一次操作中用他的图像填充它.SQL如下:

BEGIN;
  INSERT INTO albums [...];  -- Create a new album row
  SELECT id AS album_id FROM albums WHERE [...];  -- Get that rows ID
  -- Now use album_id in the next statement
  INSERT INTO album_images (album_id, image_id) [...];
COMMIT;
Run Code Online (Sandbox Code Playgroud)

这可能是一个常见问题,我只是不确定要搜索什么,我似乎也无法在文档中找到解决方案.

sql postgresql transactions

7
推荐指数
1
解决办法
2804
查看次数

尝试通过 ts-patch 在 Angular 项目中使用 ts-nameof

我正在使用 Angular 8.2,并ts-nameof为我的项目安装了4.2.2,并ts-patch在全球安装了1.0.5。

我运行ts-patch installts-patch check显示:

Checking TypeScript v3.5.3 installation in [...]
[+] tsc.js is patched with ts-patch version 1.0.5.
[+] tsserverlibrary.js is patched with ts-patch version 1.0.5.
[+] typescript.js is patched with ts-patch version 1.0.5.
[+] typescriptServices.js is patched with ts-patch version 1.0.5.
Run Code Online (Sandbox Code Playgroud)

因此,我将ts-patch示例部分中的以下内容添加到了我的tsconfig.json:

{
  "compilerOptions": {
    "plugins": [
      { "transform": "ts-nameof", "type": "raw" }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

并跑了ng serve -o

还在抱怨Cannot find …

angular-cli angular

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

Web浏览器何时发送If-Modified-Since?

我正在recent.rss通过python烧瓶提供动态创建,当然这种方式总是通过它发送200 OK.我打算通过Expires在未来一周设置标题并检查浏览器是否发送来解决此问题If-Modified-Since.

如果是这样(在比较日期之后)我会做return nothing, 304而不是return response,但根据Firebug和request.environ我的浏览器从来没有发送If-Modified-Since过那个资源.

我知道我可以将数据保存到文件中并使用Web服务器将其作为真正的静态文件提供,但我最终可能需要通过WSGI提供静态文件,即使不是,我也想知道为什么这样做不会工作.

谢谢你的帮助.

python browser if-modified-since flask

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

Flask 的 @before_request 执行不止一次

app.logger.error('test')在我的内部添加了一个,@app.before_request并注意到test每个请求在我的日志中最多有 8 行,即使它只是abort(500). 我似乎无法找出原因,这是什么原因造成的?

python flask

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

如何去除 Kubernetes Traefik 入口中的路径前缀?

我在 Ubuntu 20.04 上使用 k3s v1.22.7。我想/bar/xyz加入/xyz豆荚。如果没有中间件,我可以正确路由到 Pod,有了它,我可以从 Traefik 获得,就好像从/404中剥离发生在 Ingress 路径评估之前一样。网上的例子都是这样的……replacePathRegexstripPrefix

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: strip-prefix
spec:
  #replacePathRegex:
  #  regex: ^/(?:[^/]+)/(.*)
  #  replacement: /$1
  stripPrefix:
    prefixes:
      - /bar
      - /baz
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: foo-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/router.middlewares: strip-prefix@kubernetescrd
spec:
  rules:
  - host: example.org
    http:
      paths:
      - path: /bar
        pathType: Prefix
        backend:
          service:
            name: foo-service
            port:
              number: 5001
      - path: /baz
        pathType: Prefix
        backend:
          service:
            name: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress k3s

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

jQuery .submit()不会在Firefox中发送输入提交

我有一个小jQuery(1.6.2)脚本,它将输入提交值更改为"正在发送...",并阻止它在没有选定图像的情况下工作.

$('form#upload').submit(function(event)
{
  event.preventDefault();

  var image = $('input[name="image"]');
  var upload = $('input[name="upload"]');

  if (image.val())
  {
    upload.val('Sending...');
    this.submit();
  }
});
Run Code Online (Sandbox Code Playgroud)

image是一个输入文件,upload是输入提交.它在Chrome中运行良好,但Firefox(5.0)不会在POST中发送输入提交,只会发送图像,这会导致我的服务器端脚本失败.我可以解决这个问题,但我想知道我是否可以解决这个问题,而且我似乎无法找到任何内容.

firefox jquery submit

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