我只是想知道,是否有一个Python成语来检查一个字符串是否为空,然后打印一个默认值,如果它是?
(上下文是Django,对于__unicode__(self)UserProfile 的函数 - 基本上,我想打印名字和姓氏,如果它存在,然后是用户名,如果它们不存在的话).
干杯,维克多
我正在创建一个小的Python脚本来管理不同类别的服务器(FTP,HTTP,SSH等)
在每种类型的服务器上,我们可以执行不同类型的操作(部署,配置,检查等)
我有一个基Server类,然后是从这个继承的每种类型的服务器的单独的类:
class Server:
...
def check():
...
class HTTPServer(Server):
def check():
super(HTTPServer, self).check()
...
class FTPServer(Server):
def check():
super(FTPServer, self).check()
...
Run Code Online (Sandbox Code Playgroud)
示例命令行可能是:
my_program deploy http
Run Code Online (Sandbox Code Playgroud)
从命令行,我需要的两个必要参数是:
以前,我正在使用argparse和store操作,并使用a dict来匹配命令行选项到实际的类和函数名称.例如:
types_of_servers = {
'http': 'HTTPServer',
'ftp': 'FTPServer',
...
}
valid_operations = {
'check': 'check',
'build': 'build',
'deploy': 'deploy',
'configure': 'configure',
'verify': 'verify',
}
Run Code Online (Sandbox Code Playgroud)
(在我的实际代码中,valid_operations并不是一个天真的1:1映射.)
然后使用相当可怕的代码来创建正确类型的对象,并调用正确的类.
然后我想我会使用argparse的subparsers功能代替它.所以我做了一个subparser的每个操作(检查,构建,部署等).
通常,我可以将每个子命令链接到特定的函数,并让它调用它.不过,我不想只是调用一个通用的check()功能-我需要创建正确类型对象的第一,然后调用这个对象中的相应的功能.
有没有好的或pythonic方式来做到这一点?最好是一个不涉及大量硬编码,或者设计错误的if/else循环?
我需要解析包含FIX协议消息的日志文件.
每行包含标头信息(时间戳,日志记录级别,端点),后跟FIX有效负载.
我使用正则表达式将头信息解析为命名组.例如:
<?P<datetime>\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}.\d{6}) (?<process_id>\d{4}/\d{1,2})\s*(?P<logging_level>\w*)\s*(?P<endpoint>\w*)\s*
Run Code Online (Sandbox Code Playgroud)
然后我来到FIX有效负载本身(^ A是每个标签之间的分隔符),例如:
8=FIX.4.2^A9=61^A35=A...^A11=blahblah...
Run Code Online (Sandbox Code Playgroud)
我需要从中提取特定的标签(例如,来自35 =的"A",或来自11 =的"blahblah"),并忽略所有其他的东西 - 基本上我需要在"35 = A"之前忽略任何东西,以及之后的任何事情到"11 = blahblah",然后在那之后忽略任何事情等.
我知道有一个库可能能够解析每个标签(http://source.kentyde.com/fixlib/overview),但是,如果可能的话,我希望在这里使用正则表达式的简单方法,因为我真的只需要几个标签.
在正则表达式中有一个很好的方法来提取我需要的标签吗?
干杯,维克多
我正在尝试使用Bootstrap 3.0组建一个静态网页.
该页面基本上是叙述性的,由一系列带有背景图像的堆叠部分组成,文本和其他图像/元素叠加在顶部.

页面设计为从上到下滚动,每个部分的背景图像应填充水平宽度.
稍后,我还将使用Skrollr(https://github.com/Prinzhorn/skrollr)添加图像视差.
但是,现在,我正在努力使用Bootstrap来开发HTML/CSS.
最初,我以为我可以这样做:
<body>
<div class="container">
<section id="first">
<div class="row annoucement col-md-4 col-md-offset-4">
<h1>The story of...</h1>
</div>
</section
<section id="second">
<div class="row gallery col-md-4 col-md-offset-4">
<!-- Image gallery boxes -->
</div>
</section
</div>
Run Code Online (Sandbox Code Playgroud)
然后在CSS中:
#first {
background: url(img/1.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)
但是,背景图像不可见 - #first元素是1140px x 0px,因此图像未显示.
我怀疑我没有正确使用标签类型 - 有关如何使用Bootstrap进行上述布局的任何建议?
我正在尝试使用具有多个全宽背景图像的Bootstrap创建响应式网站.
这是一个应该如何看的模型:

想法是将每个图像拉伸到浏览器窗口的宽度,然后相应地缩放高度以保持纵横比.
我已经提出了一个我现在所拥有的JSFiddle:
目前,我有多个<section>标签,我正在设置每个背景图像background-size: cover:
#first {
background: url(http://placehold.it/1350x890/37FDFC/&text=photo1) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 800px;
/*height: 800px;*/
/*padding-bottom: 200px;*/
}
Run Code Online (Sandbox Code Playgroud)
作为一个黑客,我为每个设置最小宽度,所以它不是真正响应.
如果我没有设置最小高度,那么每个都只是缩小以适应内部的元素,这不是我想要的.
在上一个问题中,答案建议使用多个Bootstrap容器 - 您是否准备通常使用多个容器div?此外,该答案并未真正涵盖如何使其响应,以便宽度适合,并且高度将缩放以保持纵横比.
我正在尝试使用CasperJS将图像上传到网络表单.
我的表单看起来像这样:
<form action="" method="POST" enctype="multipart/form-data" class="form-vertical">
...
<legend>Campaign Banner</legend>
<div class="control-group image-field ">
<label class="control-label">Now Large</label>
<div class="controls">
<div class="file-field"><input id="id_now_large_image" name="now_large_image" type="file"></div>
<div class="image-preview"></div>
<div class="clear"></div>
<span class="help-inline"></span>
</div>
</div>
<div class="control-group image-field ">
<label class="control-label">Now Medium</label>
<div class="controls">
<div class="file-field"><input id="id_now_medium_image" name="now_medium_image" type="file"></div>
<div class="image-preview"></div>
<div class="clear"></div>
<span class="help-inline"></span>
</div>
</div>
<div class="control-group image-field ">
<label class="control-label">Now Small</label>
<div class="controls">
<div class="file-field"><input id="id_thumbnail_image" name="thumbnail_image" type="file"></div>
<div class="image-preview now-small"></div>
<div class="clear"></div>
<span class="help-inline"></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
提交按钮如下所示:
<div class="form-actions"> …Run Code Online (Sandbox Code Playgroud) 我正在查看绘制具有大量点(500,000点及以上)的散点图。
目前,我们正在使用Matplotlib在Python中进行此操作。它绘制点,并提供平移和缩放控件。我不相信它会提供任何聚类或点,它只是将它们全部绘制出来-我想在缩小视图上没有多大意义,但是您可以放大并且它们都在那里。
我一直在用JavaScript制作图表,以使其更易于分发。我正在看D3.js,看那里是否有类似的可行方法。我确实找到了一个基本散点图的示例:
http://bl.ocks.org/mbostock/3887118
首先,您能否绘制出该点数?(500,000及以上)给我的印象是,由于所有DOM对象的开销,您无法做到吗?有办法解决吗?
其次,是否有任何可用的集群,无论是库还是D3.js中完成的示例?
第三,如果有人知道平移/缩放功能和群集的任何很好的例子,甚至只是一个处理它的打包JS库,那就太棒了。
第四,在每个点上都具有单击处理程序,并且可以在覆盖图中甚至在单独的窗口中显示一些文本,这也很好。有什么想法吗?
我们有一个Django DetailView,我们在其中显示一个object(Site)及其所有相关对象(Rooms).
现在,在模板中,我们可以简单地遍历RelatedManager集:
{% for room in site.room_set.all %}
do stuff
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
然而,问题在于这会将所有相关的房间带到一个站点 - 但是,我们需要通过另一个属性(让我们称之为year)稍微缩小这个设置- 并且该属性存储在Django会话变量中.
目前,我们只是Room.objects.filter(site=some_site, year='2009')在视图代码中使用,这很好.
我的问题更多来自好奇心 - 有没有办法_set在模板中使用,还是过滤或缩小集合?
您是否可以编写自定义模型管理器来执行此操作,以便_set只返回当前年份的对象?或者还有其他方式吗?
干杯,维克多
我知道使用Paramiko的SSHClient类,您可以设置一个轻松的缺失主机密钥策略,如下所示:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
Run Code Online (Sandbox Code Playgroud)
但是,我正在通过SFTP(而不是SSHClient)打开文件流,如下所示:
t = paramiko.Transport((process['hostname'], 22))
keyfile = paramiko.DSSKey.from_private_key_file('./id_dsa')
t.connect(username = 'user', pkey = keyfile)
sftp = paramiko.SFTPClient.from_transport(t)
Run Code Online (Sandbox Code Playgroud)
我无法在文档中找到任何通过Transport或SFTPClient设置丢失主机密钥策略的内容.
有没有办法使用SFTPClient实现相同的功能?
干杯,维克多
我有一个需要查找某个文件的Python脚本.
我可以使用os.path.isafile(),但我听说这是糟糕的Python,所以我试图捕获异常.
但是,有两个位置我可以查找该文件.我可以使用嵌套的trys来处理这个:
try:
keyfile = 'location1'
try_to_connect(keyfile)
except IOError:
try:
keyfile = 'location2'
try_to_connect(keyfile)
except:
logger.error('Keyfile not found at either location1 or location2')
Run Code Online (Sandbox Code Playgroud)
或者我可以在第一个除了块之外放一个通道,然后在下面再放一个通道:
try:
keyfile = 'location1'
try_to_connect(keyfile)
except IOError:
pass
try:
keyfile = 'location2'
try_to_connect(keyfile)
except:
logger.error('Keyfile not found at either location1 or location2')
Run Code Online (Sandbox Code Playgroud)
但是,是否有更多的Pythonic方法来处理上述情况?
干杯,维克多
python ×5
html ×3
css ×2
django ×2
javascript ×2
argparse ×1
casperjs ×1
d3.js ×1
filter ×1
fix-protocol ×1
idioms ×1
parameters ×1
paramiko ×1
phantomjs ×1
regex ×1
scatter-plot ×1
ssh ×1
templates ×1