小编vic*_*ooi的帖子

Python - 成语检查字符串是否为空,打印默认值

我只是想知道,是否有一个Python成语来检查一个字符串是否为空,然后打印一个默认值,如果它是?

(上下文是Django,对于__unicode__(self)UserProfile 的函数 - 基本上,我想打印名字和姓氏,如果它存在,然后是用户名,如果它们不存在的话).

干杯,维克多

python django idioms

6
推荐指数
2
解决办法
3755
查看次数

Python ArgParse Subparsers并链接到正确的函数

我正在创建一个小的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)

从命令行,我需要的两个必要参数是:

  1. 执行操作
  2. 要创建/管理的服务器类型

以前,我正在使用argparsestore操作,并使用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循环?

python parameters command-line-arguments argparse

6
推荐指数
1
解决办法
3225
查看次数

在正则表达式中解析FIX协议?

我需要解析包含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),但是,如果可能的话,我希望在这里使用正则表达式的简单方法,因为我真的只需要几个标签.

在正则表达式中有一个很好的方法来提取我需要的标签吗?

干杯,维克多

python regex fix-protocol

6
推荐指数
2
解决办法
6168
查看次数

使用Bootstrap 3.0的多个堆叠全宽背景图像

我正在尝试使用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进行上述布局的任何建议?

html css twitter-bootstrap

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

Bootstrap 3和响应背景图像?

我正在尝试使用具有多个全宽背景图像的Bootstrap创建响应式网站.

这是一个应该如何看的模型:

在此输入图像描述

想法是将每个图像拉伸到浏览器窗口的宽度,然后相应地缩放高度以保持纵横比.

我已经提出了一个我现在所拥有的JSFiddle:

http://jsfiddle.net/SeFVV/

目前,我有多个<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?此外,该答案并未真正涵盖如何使其响应,以便宽度适合,并且高度将缩放以保持纵横比.

html css responsive-design twitter-bootstrap

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

让CasperJS将图像上传到文件字段的问题 - 尝试过CasperJS fill()和PhantomJS uploadFile()

我正在尝试使用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)

html javascript phantomjs casperjs

6
推荐指数
1
解决办法
4972
查看次数

具有大(&gt; 500,000)点的D3.js散点图?聚类?

我正在查看绘制具有大量点(500,000点及以上)的散点图。

目前,我们正在使用Matplotlib在Python中进行此操作。它绘制点,并提供平移和缩放控件。我不相信它会提供任何聚类或点,它只是将它们全部绘制出来-我想在缩小视图上没有多大意义,但是您可以放大并且它们都在那里。

我一直在用JavaScript制作图表,以使其更易于分发。我正在看D3.js,看那里是否有类似的可行方法。我确实找到了一个基本散点图的示例:

http://bl.ocks.org/mbostock/3887118

首先,您能否绘制出该点数?(500,000及以上)给我的印象是,由于所有DOM对象的开销,您无法做到吗?有办法解决吗?

其次,是否有任何可用的集群,无论是库还是D3.js中完成的示例?

第三,如果有人知道平移/缩放功能和群集的任何很好的例子,甚至只是一个处理它的打包JS库,那就太棒了。

第四,在每个点上都具有单击处理程序,并且可以在覆盖图中甚至在单独的窗口中显示一些文本,这也很好。有什么想法吗?

javascript visualization scatter-plot d3.js

6
推荐指数
1
解决办法
6516
查看次数

Django - 在模板中过滤RelatedManager _set?

我们有一个Django DetailView,我们在其中显示一个object(Site)及其所有相关对象(Rooms).

现在,在模板中,我们可以简单地遍历Rel​​atedManager集:

{% 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只返回当前年份的对象?或者还有其他方式吗?

干杯,维克多

django templates filter

5
推荐指数
0
解决办法
5879
查看次数

Paramiko SFTPClient - 设置丢失的主机密钥策略?

我知道使用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 ssh paramiko

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

Pythonic处理多个可能的文件位置的方法?(不使用嵌套的trys)

我有一个需要查找某个文件的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 exception-handling

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