小编mis*_*iru的帖子

如何使用python.logging模块获取所有现有记录器的列表

有没有办法在python中获取列表所有已定义的记录器?
我的意思是,是否存在可以使用的东西,logging.getAllLoggers()哪些会返回Logger对象列表?

我搜索了python.logging文档,但找不到这样的方法.

先感谢您.

python logging python-3.x

26
推荐指数
3
解决办法
6827
查看次数

如何在 python dot env 文件中定义列表?

在 Fast API 文档中建议使用 .env 来加载配置。只是据我所知它只支持字符串。

from fastapi import FastAPI
from pydantic import BaseSettings


class Settings(BaseSettings):
    api_tokens = []

    class Config:
        env_file = ".env"


settings = Settings()
app = FastAPI()

Run Code Online (Sandbox Code Playgroud)

我通常每隔几个月更改一次 API 令牌,将新的令牌添加到列表中,并在一段时间后删除旧的令牌。这为用户提供了足够的时间升级到最新版本而不会造成任何中断。同时,两个 API 令牌都将在一段时间内有效。

但我无法在文件中定义列表.env

API_TOKENS = abc123,abc321
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

更新:

这实际上是可能的。下面的答案是正确的,但是我仍然必须像这样更改类型:

class Settings(BaseSettings):
    api_tokens: list
Run Code Online (Sandbox Code Playgroud)

python pydantic fastapi python-dotenv

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

使用来自 Gitlab-CI 的部署令牌克隆外部私有子模块

我在私有服务器 serverB 上有一个存储库 repoB,并从中获取部署令牌(用户+密码)。
\n此存储库用作我尝试配置的项目中的子模块。

\n

在这个项目中,我希望能够在 Gitlab-CI 期间初始化这个子模块。

\n

我的.gitmodules是:

\n
[submodule "repoB"]\n    path = repoB\n    url = https://serverB/groupB/repoB.git\n
Run Code Online (Sandbox Code Playgroud)\n

我的.gitlab-ci.yml

\n
test_build:\n    variables:\n        GIT_SUBMODULE_STRATEGY: recursive\n
Run Code Online (Sandbox Code Playgroud)\n

实际上,我得到的错误如下(group:\xc2\xa0 japan7、project: nanachan、repoB: karaneko、serverB git.inpt.fr:)

\n
Updating/initializing submodules recursively...\nSynchronizing submodule url for \'karaneko\'\nCloning into \'/builds/japan7/nanachan/karaneko\'...\nfatal: could not read Username for \'https://git.inpt.fr\': No such device or address\nfatal: clone of \'https://git.inpt.fr/japan7/karaneko.git\' into submodule path \'/builds/japan7/nanachan/karenko\' failed\nFailed to clone \'karaneko\'. Retry scheduled\nCloning into \'/builds/japan7/nanachan/karaneko\'...\nfatal: could not read …
Run Code Online (Sandbox Code Playgroud)

git-submodules gitlab gitlab-ci

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

如何在不立即影响数据库的情况下删除记录

在一个先例问题中,我正在寻找与 ORM 中BaseModel.newcreate方法类似的方法,但不会在数据库中写入更改。

是否存在相同的方法,但行为像unlink?我想在onchange通话中从我的记录集中删除一条记录。我不希望立即删除记录,但仅当用户按下Save按钮时才删除。

非常感谢您提前!


有关我为什么需要此功能的更多信息:

我正在使用stockOdoo的模块。在 a 中Picking,我想动态更改保留产品(按唯一序列号跟踪),这意味着添加一些新产品move_line并删除一些现有产品。

我不能简单地更改,lot_id因为某些move_lineslot_id可能会保留在另一个中Picking(或者至少,我没有找到如何巧妙地做到这一点)。

通过更改lot_id或执行selected_move_id.move_line_ids.new({...})我的onchange方法,我可以添加新的。现在我想删除我不再需要的现有的。我想以与用户按下trash相应行上的图标相同的方式删除它们。

odoo odoo-12

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

事件:“使用了不赞成使用的符号,请向文档咨询以获得更好的替代方法”

PyCharm(我想与WebStorm和其他JetBrains IDE相同)已经有一段时间了,它对event我在代码中使用的变量提出了弱警告。

例如下面的代码

<div id="my-div" onclick="event.preventDefault();">...</div>
Run Code Online (Sandbox Code Playgroud)

PyCharm显示此消息“已使用不赞成使用的符号,请查阅文档以寻求更好的替代方法”。

问题似乎是该event变量引用Window.event,并且根据MDN Web Docs

您应该避免在新代码中使用此属性,而应使用传递到事件处理程序函数中的Event。此属性不受普遍支持,即使受支持也会给您的代码带来潜在的脆弱性。

我知道正确的解决方法是在javascript标签中编写:

document.getElementById("my-div").addEventListener("click", function(event) {
  console.log("And use this " + event + " instead");
});
Run Code Online (Sandbox Code Playgroud)

我只是想知道如果存在的话,在HTML代码(onclick属性)中使用事件的正确方法是什么。

先感谢您!

html javascript event-listener pycharm dom-events

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

仅在满足条件时才使用插槽的回退内容

我想知道是否有办法做我想在下面描述的事情:

假设我们有一个带有插槽的组件,并且已经定义了一个后备内容。

在其他地方使用此组件时,我希望有以下行为:

<TheComponent>
  <template v-slot:name="{ data }">
    <fallback v-if="condition(data)"/>
  </template>
</TheComponent>
Run Code Online (Sandbox Code Playgroud)

我想fallback标签(或类似的)不存在(至少,我没有找到它......)。所以我想我的想法是错误的,但我找不到解决问题的方法。

问题是我无法更改,TheComponent因为它是由外部库提供的,而且我不想重新创建内容。

事实上,如果它可以提供帮助,我正在尝试隐藏展开按钮以防止在 Vuetify 中展开一行data-table,具体取决于该行在展开部分是否有要显示的内容。所以我想写一些行为类似于:

<v-data-table :items="items" show-expand ...>
  <template v-slot:item.data-table-expand="{ item }">
    <!-- Here I want the default behavior only if my item respects some condition -->
    <fallback v-if="condition(item)"/>
    <!-- Otherwise, I don't want to display the button that expands the row -->
  </template>
</v-data-table>
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助。

vue.js vuejs2 vuetify.js v-slot

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