小编mrm*_*oey的帖子

如何在SQLAlchemy ORM中打印所有列

使用SQLAlchemy,我试图以类似于以下的方式打印出每个模型的所有属性:

SELECT * from table;
Run Code Online (Sandbox Code Playgroud)

但是,我想在每个模型实例信息中做一些事情.到目前为止,我能够提出的最好的是:

for m in session.query(model).all():
    print [getattr(m, x.__str__().split('.')[1]) for x in model.__table__.columns]
    # additional code 
Run Code Online (Sandbox Code Playgroud)

这将给我我正在寻找的东西,但它是一个相当迂回的方式得到它.我有点希望得到一个属性:

m.attributes 
# or 
m.columns.values
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些东西,并且有更好的方法可以做到这一点.我这样做是因为我将打印所有内容到.CSV文件,我不想指定我感兴趣的列/属性,我想要一切(很多列都有很多要打印的模型).

python sqlalchemy

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

使用mocha设置/拆除express.js应用程序

我正在尝试使用mocha创建一个独立的测试套件,在一个完美的世界中,我将启动我的express.js应用程序,使用zombie渲染页面,检查一堆东西,然后拆除/杀死express.js应用程序.

有没有简单/最好的方法来做到这一点?

NB.我可以在运行测试之前运行快速应用程序服务器,但如果你不打算剃掉它们,那么Yaks有什么用处.

makefile node.js express zombie.js

18
推荐指数
1
解决办法
8594
查看次数

IPython Notebook:如何在没有换行的情况下显示()多个对象

目前,当我display()在IPython笔记本中使用函数时,我在对象之间插入了换行符:

>>> display('first line', 'second line') 
first line
second line
Run Code Online (Sandbox Code Playgroud)

但我希望print()所有内容保持在同一行的行为,例如:

>>> print("all on", "one line")
all onone line 
Run Code Online (Sandbox Code Playgroud)

是否有改变display行为的方法来做到这一点?

python ipython ipython-notebook

13
推荐指数
1
解决办法
2761
查看次数

正则表达式,用于可选地匹配字符串的结尾(可选$)

我想提取,

ID=(?P<group>.+?);

从字符串开始,'ID ='是一个常量,组可以是任何东西.比赛的位置会因字符串而异.

在大多数情况下这很好,但偶尔匹配将在字符串的末尾,并且分号将丢失.在这种情况下,我如何选择匹配字符串的结尾?我尝试了以下方法:

ID=(?P<group>.+?)[;$]
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,我想是因为$不是一个角色(它是一个锚?).

这是使用re模块在Python中完成的,并且已经考虑了所有正常行为,例如使用原始字符串(我认为!).

python regex

10
推荐指数
1
解决办法
8385
查看次数

使用IMAP和Python获取最近的电子邮件

我希望使用IMAP从电子邮件帐户收件箱中返回n(最可能是10个)最近的电子邮件.

到目前为止,我拼凑了:

import imaplib
from email.parser import HeaderParser

M = imaplib.IMAP4_SSL('my.server')
user = 'username'
password = 'password'
M.login(user, password)
M.search(None, 'ALL')
for i in range (1,10):
    data = M.fetch(i, '(BODY[HEADER])')
    header_data = data[1][0][1]
    parser = HeaderParser()
    msg = parser.parsestr(header_data)
    print msg['subject']
Run Code Online (Sandbox Code Playgroud)

这回复邮件标题很好,但它似乎是一个半随机的电子邮件集合,而不是最近的10.

如果有帮助,我将连接到Exchange 2010服务器.其他方法也欢迎,IMAP似乎是最合适的,因为我只想阅读不发送的电子邮件.

python email imap

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

Django模板标记{{for/empty}}用于循环变量

要使用我的Django应用程序中的相关参数生成一组Javascript变量,我有两个嵌套的for循环:

<script>
{% for model in models %} 
    {% for item in model.attribute|slice:":3" %}
        {% if forloop.first %} 
            var js_variable{{ forloop.parentloop.counter0 }} = [
        {% endif %}
            '{{ item.attribute }}' ,
        {% if forloop.last %}
            {{ item.attribute }} ]
    {% empty %}
        var js_variable{{ forloop.parentloop.counter0 }} = []
    {% endfor %}
{% endfor %}

....code that gets unhappy when js_variable[n] doesn't exist.....

</script>
Run Code Online (Sandbox Code Playgroud)

{% empty %}发生它似乎没有访问{{ forloop.parentloop. counter0 }}变量,因此变量名称js_variable[n]打印不正确js_variable(没有计数器提供的数字),以后代码抱怨.

是否这个变量在{{ empty …

javascript python django

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

xlrd Excel脚本将"#N/A"转换为42

我有一个脚本使用xlrd模块从excel电子表格中提取数据,特别是row_values()方法.它似乎做得很好,除了之前的VLookups自动生成"#N/A",在这种情况下,xlrd将"#N/A"作为整数42.

我看了一下字符串格式化方法,但看不出那是怎么回事.

除了有一个发现了生命意义的脚本(42)之外,有谁可以建议问题是什么?

干杯

注意:工作表中不再包含Vlookup,所有值都已从其他工作表复制,一切都是普通值,没有公式.

python excel xlrd

5
推荐指数
3
解决办法
3356
查看次数

SQLAlchemy中的外键约束

我正在使用SQLAlchemy的ORM端,并且我已经定义了一个列与另一个模型具有外键关系,使用:

Base = declarative_base()
class Model1(Base):
    __tablename__ = 'm1'
    Name = Column(String, primary_key = True)
    info = Column(String)

class Model2(Base):
    __tablename__ = 'm2'
    Name = Column(String, primary_key = True)
    info = Column(String)
    other_model = Column(String, ForeignKey('m1.Name'))
Run Code Online (Sandbox Code Playgroud)

但是,我在other_model属性中放置的内容似乎并不重要,似乎非常乐意将它提交到数据库,即使没有Model1具有该实例的实例也是如此Name.

python sqlalchemy

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

如何阻止PyCharm的"智能"标签行为

PyCharm的默认选项卡(如in,white space)行为会阻止您插入其认为不合适的其他选项卡.

有人可以建议如何关闭此行为?它大部分时间都有效,但有时您需要返回上一行并插入一个新行.

python pycharm

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

跨操作系统的Python open()unicode文件名行为不同

文件名如下:

filename = u"/direc/tories/español.jpg"
Run Code Online (Sandbox Code Playgroud)

并使用open()作为:

fp = open(filename, "rb")
Run Code Online (Sandbox Code Playgroud)

这将在OSX(10.7)上正确打开文件,但在Ubuntu 11.04上,open()函数将尝试打开u"espa\xf1ol.jpg",这将失败并出现IOError.

通过尝试解决这个问题的过程,我已经检查sys.getfilesystemencoding()了两个系统,两者都设置为utf-8(虽然Ubuntu报告大写,即UTF-8,不确定是否相关).我也设置# -*- coding: utf-8 -*-了python文件,但我确信这只会影响文件本身的编码,而不影响任何外部函数或python如何处理系统资源.该文件存在于两个系统上,并且eñe正确显示.

最后的问题是:如何español.jpg在Ubuntu系统上打开文件?

编辑:español.jpg字符串实际上是通过Django的ORM(ImageFileField)从数据库出来的,但是当我处理它并看到行为上的差异时,我有一个unicode字符串,它是文件的绝对路径.

python unicode

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