在保存结果的同时打印子进程的输出并不是一个新问题,并且之前已经多次回答过,例如: https: //stackoverflow.com/a/28319191/5506400
这对我不起作用,因为我正在尝试维护打印外壳颜色。例如,当一个人走时systemctl status application,它的打印会显示为绿色。上述方法都依赖于从子进程中一行一行地读取,但在我看来,那时颜色信息已被剥离和丢失。
我尝试创建一个对象,该对象远离标准输出打印并将它们保存到变量中:
from subprocess import *
import sys
class Tee():
def __init__(self):
self.content = ''
self.stdout = sys.stdout
sys.stdout = self
def __enter__(self):
return self
def __exit__(self, *args):
pass
def __del__(self):
sys.stdout = self.stdout
def write(self, data):
self.content += data
self.stdout.write(data)
def flush(self):
self.content = ''
with Tee() as tee:
# Saves print to tee.content
print("Hello World")
# This line does not save prints to tee.content
run(['apt-get', 'update'])
# raises an error that …Run Code Online (Sandbox Code Playgroud) 在 Django 管理界面中,您可以将字段设置为自动完成字段,例如:
autocomplete_fields = ('countries', )
Run Code Online (Sandbox Code Playgroud)
这对管理页面很有用,如何在自定义视图/表单中使用自动完成字段?我的研究指向 django-autocomplete-light,但是当 Django 已经具有内置功能时,安装 3rd 方包似乎并不理想。
我可以用wt. 我已经阅读了有关命令行参数的 Windows 终端文档,它只涵盖了为设置终端窗格传递参数,而不是传递实际的可执行命令。
例如最小可重现示例:需要安装 Windows 终端:在 Windows 中打开 cmd 提示符并键入:
dir | wt
Run Code Online (Sandbox Code Playgroud)
这将启动 Windows 终端,但它没有收到dir命令。如何将可执行命令传递给 Windows 终端?
我经常发现我希望控制句子的断开/换行方式,例如:
Hello there Mr Nemesis X, welcome to the interwebs!
Run Code Online (Sandbox Code Playgroud)
如果视口很窄,我希望它在逗号之后换行,因此两条逻辑行在一起:
即GOOD:仅当视口太窄而无法显示整个屏幕时
Hello there Mr Nemesis X, |<----- viewport width
welcome to the interwebs!
Run Code Online (Sandbox Code Playgroud)
坏的:
Hello there Mr Nemesis X, welcome to the |<----- viewport width
interwebs!
Run Code Online (Sandbox Code Playgroud)
目前,我将这两个句子放在两个<span>s 中,并使用 flex 来确保它们包装在一起,这对我经常做的事情来说是一个多么大的使命。我了解了<wbr>,听起来如果我用 say 替换所有空格就可以工作 ,但这不是它的定义目的。有<br>,但总是会中断。所以我正在寻找类似“换行符”的东西,比如说<lbr>(不存在),如果该行需要换行,它会说嘿,这是一个换行的好地方。
我有一个 CSS grid,有时并非所有元素都被使用。在实际用例中,我使用的是grid输入小部件,其中可能有额外的帮助文本或错误放入特定的grid-area. 我遇到的问题是grid-gap,如果该行为空,它仍然应用间隙。这会导致底部出现双行间隙。有没有办法禁止显示空行之间的间隙?
我一直面临这个问题,它使得网格间隙对我来说无法使用,所以通常我不使用网格间隙,而是使用更复杂的边距设置。
.parent {
background: gray;
padding: 16px;
margin: 16px;
display: grid;
grid-template-columns: 64px 128px;
grid-template-areas:
"childa childb"
"childc childd"
"childe childf";
grid-gap: 16px;
}
[class^="child"] {
background-color: red;
}
.childa { grid-area: childa }
.childb { grid-area: childb }
.childc { grid-area: childc }
.childd { grid-area: childd }
.childe { grid-area: childe }
.childf { grid-area: childf }Run Code Online (Sandbox Code Playgroud)
<p>Grid gap is okay if all cells filled:</p>
<div class="parent"> …Run Code Online (Sandbox Code Playgroud)假设我有一个本机 Web 组件,它有一个插槽:
<slot id="CONTENT_SLOT" name="content"></slot>
Run Code Online (Sandbox Code Playgroud)
const CONTENT_SLOT = this.shadowRoot.getElementById("CONTENT_SLOT")找到该元素,但CONTENT_SLOT.children为空。
this.shadowRoot.querySelectorAll('[slot="content"]')也返回一个空节点列表。
document.querySelectorAll('[slot="content"]')查找插槽中的项目,但适用于所有 Web 组件。
如何content仅获取当前 Web 组件实例的槽中元素的 NodeList?
在下面的示例中,有一个很大的红色间隙,我认为不应该存在,这里称为“间隙”。它出现在 Firefox 和 Chrome 中。所以我想纠正一下我对flex/grid容器的理解。
奇怪的是,这个空间的增长取决于放置的物品数量#CONTAINER。如果您将其中的项目数量减半,例如 4(111 到 444),那么空间将减半,如果您向其中添加项目,空间将会增加。
我只是不明白这个差距从何而来,为什么差距会越来越大又越来越小。我通过反复试验确定它会在flex-wrap: wrap应用时发生。#CARD所以这篇文章不是关于“修复下面的代码,使其以某种方式运行”。这是关于了解空间从哪里来?为什么添加物品#CONTAINER后空间会变大?
注意:我需要flex-wrap: wrap在我的真实代码中,这只是一个最小的可重现示例。
#CARD {
background: lightgray;
display: flex;
flex-direction: column;
flex-wrap: wrap;
padding: 8px;
}
#SECTION {
background: red;
display: flex;
flex-direction: column;
}
#CONTAINER {
background: green;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(min(100%, 268px), 1fr));
}Run Code Online (Sandbox Code Playgroud)
<div id="CARD"><!-- gray -->
<div id="SECTION"><!-- red -->
<div id="CONTAINER"><!-- green -->
<div>
<div>111</div>
<div>222</div>
</div>
<div>
<div>333</div>
<div>444</div>
</div>
<div>
<div>555</div>
<div>666</div> …Run Code Online (Sandbox Code Playgroud)如果我的代码中有任何错误(在使用 LoginRequiredMixin 的视图中使用的模型中的代码),例如一个错误,例如:
if (True: # <-- example bug to show how bugs like this are hidden
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
"AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL
django.core.exceptions.ImproperlyConfigured:
AUTH_USER_MODEL refers to model 'auth.User' that has not been installed
Run Code Online (Sandbox Code Playgroud)
这使得调试代码非常困难。我已经弄清楚是否从我的 views.py 中删除了这一行:
from django.contrib.auth.mixins import LoginRequiredMixin
Run Code Online (Sandbox Code Playgroud)
即使我删除了所有使用 LoginRequiredMixin 的实例,只需导入它,它就会隐藏真正的错误并生成上述身份验证错误。
我读过:AUTH_USER_MODEL 指的是尚未安装的模型“%s””% settings.AUTH_USER_MODEL
我的研究表明,大多数情况下这是由于 INSTALLED_APPS 中缺少“django.contrib.auth'”,您可以看到我有(settings.py 片段,Django 2.2):
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth', # <-- Important for this topic!
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp.apps.CommonConfig',
]
MIDDLEWARE = [ …Run Code Online (Sandbox Code Playgroud) 我使用 WSL(适用于 Linux 的 Windows 子系统)。我在 WSL 中安装了 Neovim/Vim/etc,并希望能够在资源管理器中打开一个文件,并在 Windows 终端内在 WSL 中安装的 Neovim 中打开它。编写什么脚本来启动它,我正在努力从cmd, 通过 wt.exe转义双引号,然后转入 WSL bash。
为 windows 和 linux 配置两个版本的 Neovim/Vim 可能会很痛苦。而只是在 Windows 和 WSL 中仅使用 WSL 版本。
我创建了一个服务工作人员,在本地使用 chrome 对其进行了调试,并且工作正常。我将其部署到网站上,并看到下图中的错误(仅在 Chrome 中,Firefox 工作正常):
\n/static/core.jslib/sw.min.js:1 Failed to load the script unexpectedly\n/static/core.jslib/sw.min.js:1 Failed to load the script unexpectedly\nRun Code Online (Sandbox Code Playgroud)\n使用 Chrome,如果我单击启动服务工作线程,它会立即停止。对于 Firefox,它会运行一段时间然后停止(预期)。
\nNetwork或Application我已经将我的服务人员简化为这样,所以现在我很确定这不是我的代码,而是 …
javascript google-chrome google-chrome-devtools service-worker progressive-web-apps
batch-file ×2
css ×2
django ×2
python ×2
css-grid ×1
html ×1
javascript ×1
mixins ×1
neovim ×1
powershell ×1
python-3.x ×1
subprocess ×1
systemd ×1
vim ×1
windows ×1