小编Ant*_*hon的帖子

在handlebars.js {{#if}}条件下检查长度

车把 JS 有没有办法检查一个值的长度?像这样的东西:

{{#if value.length > 20}
..do something
{{else}}
..do something
{{/if}}
Run Code Online (Sandbox Code Playgroud)

jquery handlebars.js

7
推荐指数
3
解决办法
5537
查看次数

在Tomcat关闭期间保持HTTP请求

我遇到Tomcat关机问题.在servlet容器关闭时到达的请求似乎被连接器阻止,直到容器关闭完成.

问题是,我们的servlet可能需要一分钟才能关闭,这意味着在此期间到达的连接将保持长达一分钟.

这种行为是正确/预期的吗?

不理想的Tomcat关机行为是

  1. 让现有的请求完成(因为它已经完成),但是
  2. 拒绝新的联系(而不是接受并持有它们)?

java tomcat servlets shutdown tomcat7

7
推荐指数
2
解决办法
2441
查看次数

SQLALchemy动态filter_by

我知道你可以通过提供**kwargs来为SQLAlchemy的查询构建动态过滤器filter_by.

例如

    filters = {'id': '123456', 'amount': '232'}
    db.session.query(Transaction).filter_by(**filters)
Run Code Online (Sandbox Code Playgroud)

以下是我的问题:

如果我需要通过"大于"或"小于"条款查询,该怎么办?例如(原始SQL):

 select * from transaction t 
 where t.amount > 10 and t.amount < 100;
Run Code Online (Sandbox Code Playgroud)

python orm sqlalchemy

7
推荐指数
2
解决办法
6340
查看次数

Django-model:在模型字段中保存计算值

我想用计算字段保存django模型,以便我可以对其进行搜索.

class TestModel(models.Model):
    x = models.CharField(max_length=16)
    z = models.CharField(max_length=16)

    # I want a field like below and also saves in databse
    # computed =  computed()

    def computed(self):
        result = self.x + self.y
        return result
Run Code Online (Sandbox Code Playgroud)

python django django-models

7
推荐指数
2
解决办法
4247
查看次数

使用 YAML 保留空格

我的 YAML 文件中有这样的内容:

test:     I want spaces before this text
Run Code Online (Sandbox Code Playgroud)

就我而言,我希望在转换时在数组或 json 中的文本之前有一个空格。那可能吗?如何?

使用 JSON 作为输出,它的解析如下:

{
  "test": "I want spaces before this text"
}
Run Code Online (Sandbox Code Playgroud)

没有空间。

你可以在这里测试一下

yaml spaces

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

'pip setup.py bdist_wheel'不再构建强制非纯轮子

我有一个项目在Linux上使用C扩展编译,但在Windows上没有它们.当我第一次产生的车轮文件在Windows上python setup.py bdist_wheel,他们成为普遍的,我无法将它们上传到PyPI将这些万向轮被优先pip用于安装在.tar.gz上传(从结果python setup.py sdist).

围绕这个的诀窍是在setup.py:

Distribution.is_pure = lambda *args: False
Run Code Online (Sandbox Code Playgroud)

或通过子类化Distribution:

class BinaryDistribution(Distribution):
    def is_pure(self):
        return False
Run Code Online (Sandbox Code Playgroud)

setup()使用extra关键字参数在setup.py中 调用distclass=BinaryDistribution,.

这一切都在我的运行Windows XP 64的VM上运行良好,该版本具有32和64位版本的Python 2.6/2.7/3.3/3.4和pypy,仅用于此目的.一个简单的批处理文件给了我:

dist/pkg-1.0-cp26-none-win32.whl
dist/pkg-1.0-cp26-none-win_amd64.whl
dist/pkg-1.0-cp27-none-win32.whl
dist/pkg-1.0-cp27-none-win_amd64.whl
dist/pkg-1.0-cp33-none-win32.whl
dist/pkg-1.0-cp33-none-win_amd64.whl
dist/pkg-1.0-cp34-none-win32.whl
dist/pkg-1.0-cp34-none-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

pip当你pip在Windows上运行时,适当的软件包可以下载和安装,当你pip在Linux上运行时,你可以获得

pkg-1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

其中包括在安装过程中编译的C源代码.

问题始于我没有备用Windows 7许可的机器,我可以安装Python 3.5(它不安装在EOL XP上).所以我调查了Appveyor并创建了appveyor.yml:

environment:
  matrix:
    - PYTHON: C:\Python27
    - PYTHON: C:\Python33
    - PYTHON: C:\Python34
    - PYTHON: C:\Python35
    - PYTHON: …
Run Code Online (Sandbox Code Playgroud)

python windows pypi appveyor python-wheel

7
推荐指数
3
解决办法
4750
查看次数

我可以在yaml/pyyaml中转储空白而不是null吗?

使用PyYAML,如果我在dict中读入包含空值的文件:

test_str = '''
attrs:
  first:
  second: value2
'''
Run Code Online (Sandbox Code Playgroud)

这将返回None密钥first:

>>> data = yaml.load(test_str)
>>> data
{'attrs': {'second': 'value2', 'first': None}}
Run Code Online (Sandbox Code Playgroud)

但在写作时,该None值将替换为null:

>>> print(yaml.dump(data, default_flow_style=False))
attrs:
  first: null
  second: value2
Run Code Online (Sandbox Code Playgroud)

有没有办法格式化转储输出以打印空白标量而不是null

python yaml pyyaml

7
推荐指数
3
解决办法
4174
查看次数

如何在Python3文件中打印__repr__?(不在外壳中)

我知道在 Python Shell 中,当您键入时,>>> object它会显示该object.__repr__方法,如果您键入,>>> print(object)它也会显示该object.__str__方法。

但我的问题是,有没有一种__repr__在执行Python文件时进行打印的简短方法?

我的意思是,在 file.py 中,如果我使用print(object)它,它会显示object.__str__,如果我只是键入,object它不会显示任何内容。

我尝试过使用print(object.__repr__)但它打印<bound method object.__repr__ of reprReturnValue>

或者这是不可能的?

python shell repr magic-methods

7
推荐指数
1
解决办法
6513
查看次数

在ubuntu上安装没有pip的python

我需要在我从官方“ubuntu”Docker 映像构建的自定义 Docker 容器中安装 Python 包,因此我想尽量减少它使用的空间。Python3 安装正常并运行,但由于某种原因,不包括 pip。

所以我通过 安装apt install python3-pip,这有效,但它是一个惊人的 300 megs 并且需要几分钟的时间来安装(显然是因为它安装了 sh*load 的东西来从 gcc 等构建二进制包)。

当然,我可以在安装我想要的依赖项后从映像中卸载 python3-pip,另外还可以apt autoremove用来摆脱 299 megs。但是,这还需要一分钟。

因此,尽管上述方法有效,但它显着增加了我的 Docker 映像的构建时间。所以我尝试看看是否有一种无需pip即可安装依赖项的方法:

我尝试.tar.gz从 PyPI下载依赖项,提取并尝试python3 setup.py install,但这给我带来了一个奇怪的错误:

Traceback (most recent call last):
  File "setup.py", line 59, in <module>
    from distutils import log
ImportError: cannot import name 'log'
Run Code Online (Sandbox Code Playgroud)

我想也许我需要安装 setuptools 或升级 distutils。

我尝试get-pip.py从官方网站使用,但也失败了:

Traceback (most recent call last):
  File "get-pip.py", line 20890, in <module>
    main()
  File "get-pip.py", …
Run Code Online (Sandbox Code Playgroud)

ubuntu pip python-3.x docker

7
推荐指数
1
解决办法
1701
查看次数

即使 yaml.explicit_end=False,Yaml 结束(“...”)也始终会被转储

我想知道这是否真的是错误或意图,但无论如何。

\n\n

为什么转储单个值总是包含显式 YAML 结尾?

\n\n
import sys\nfrom ruamel.yaml import YAML\nyaml=YAML()\nyaml.explicit_end=False\nyaml.dump(1, sys.stdout)\n
Run Code Online (Sandbox Code Playgroud)\n\n

生产

\n\n
1\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

可以\xe2\x80\xa6以某种方式轻松跳过吗?

\n

python yaml ruamel.yaml

7
推荐指数
1
解决办法
1325
查看次数