我修改了python文档中的示例,以测试电子邮件模块中的unicode.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, unicode_literals, print_function
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# me == my email address
# you == recipient's email address
me = "my@email.com"
you = "your@email.com"
umlauts='German Umlauts: üöä ÜÖÄ ß'
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = umlauts
msg['From'] = me
msg['To'] = you
# Create the body of the message (a plain-text …
Run Code Online (Sandbox Code Playgroud) 我想通过盐堆栈安装此文件。
# /etc/logrotate.d/foo
/home/foo/log/foo.log {
compress
# ...
postrotate
systemctl restart foo.service
endscript
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,有些旧机器还没有安装系统。
对于那些机器,我需要以下postrotate脚本:
/etc/init.d/foo restart
Run Code Online (Sandbox Code Playgroud)
如何用盐做这件事?
我想我需要这样的东西:
postrotate
{% if ??? %}
/etc/init.d/foo restart
{% else %}
systemctl restart foo.service
{% endif %}
endscript
Run Code Online (Sandbox Code Playgroud)
但是如何实施???
?
我想使用注释在IDE中有更好的自动完成,并且可能稍后在自动化测试中进行类型测试.但是如何在不引入大量额外代码的情况下为多种方法添加类型注释?
例如,假设您有一个使用Django框架的大代码库,包括大约200个带request
参数的方法; 添加类型注释200次会使代码膨胀.
我目前的想法是在包级别包含类型注释:in setup.py
(或其他地方).我定义了一个规则,说"每次使用变量request
时,它都是类型django.http.HttpRequest
".对于名称request
指向不同类型的变量的边缘情况,应该进行显式注释,但这些注释很少.
如何实施?还有其他方法可以实现总体目标吗?
我有使用的代码form._raw_value(fieldname)
。
在Django 1.9中已消失。
有没有办法访问1.9+中的原始值?
更新资料
我只是将代码迁移到Django 1.9。到目前为止,我对那里发生的事情没有更深入的了解。
我可以使用查询我的模型MyModel.objects.filter(othermodel__nr='foo')
。
这很好。
我想获取该字段的verbose_name。
例:
class OtherModel(models.Model):
nr=models.IntegerField(verbose_name='Number')
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,因为我可以访问OtherModel
,所以很容易,但是我想使其通用。
如何获取此处在“键”中使用的字段的详细名称?
MyModel.objects.filter(**{key: value})
我搜索解决双下划线的方法。在此示例中,“ othermodel__nr”改为(例如)“ Number”。
在上面的示例中,我知道引用的模型是OtherModel
。但是我搜索了适用于任何字符串的解决方案。例如这样:
MyModel.objects.filter(**{str_containing_three_double_underscores: 'foo'})
Run Code Online (Sandbox Code Playgroud)
我搜寻:
get_verbose_name(str_containing_three_double_underscores) --> MyVerboseName
Run Code Online (Sandbox Code Playgroud) 打印列表/生成器的前 N 个项目
这适用于普通列表。它打印列表的前 3 项
l=[1, 2, 3, 4]
print(l[:min(3, len(l))])
Run Code Online (Sandbox Code Playgroud)
我也希望这项工作适用于少于三个项目的列表。如果列表中只有一项,则打印一项。
AFAIK len(l) 仅适用于列表。如何为生成器实现这个?
我想找出什么时候连接到我的Django数据库,或重新启动我的Django服务器.我找到了connection_created Django信号.描述是:
数据库包装器与数据库建立初始连接时发送.如果您要将任何后连接命令发送到SQL后端,这将特别有用.
所以我认为使用这个信号对我的情况来说是一个很好的解决方案.我想在建立连接后运行一个函数.我找不到关于此信号用例的任何文档.connection_created.connect
可能是使用的功能.这个函数在一堆参数,但有相关的的有 self
,receiver
,sender
和weak
.有谁知道如何使用这些参数和这个函数在新的连接实例上运行我的函数?
此外,如果除了这个信号之外还有任何其他解决方案,我很乐意听到它们.
我想在帮助文本中保留换行符并显示参数的默认值。
我在 Stackoverflow 找到了两个答案:
如何启用这两个功能?
python ×6
django ×5
email ×2
argparse ×1
deprecated ×1
django-media ×1
django-orm ×1
imap ×1
imaplib ×1
python-2.7 ×1
python-3.x ×1
salt-stack ×1
systemd ×1
type-hinting ×1
unicode ×1