小编Jav*_* C.的帖子

SQL选择表中的某些行,以便它们总和到某个值

如何在下表中仅选择一些行,以便它们总和到某个值?

Table
-----
id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20
2  | 1.5  | 0.0  | 7.5  | 18
3  | 1.0  | 2.0  | 7.5  | 18
4  | 0.0  | 0.5  | 5    | 13
Run Code Online (Sandbox Code Playgroud)

比方说,我想要的最高价值是57 ......

所以我需要选择上一个表中的行,使得每行的qty1 + qty2 + qty3 + qty4,直到该57值,并丢弃其他行.在这个例子中,我会得到以下内容:

id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20
2  | 1.5 …
Run Code Online (Sandbox Code Playgroud)

mysql select sum

10
推荐指数
2
解决办法
3703
查看次数

Alembic使用现有的SQLAlchemy引擎进行迁移

我在sqlite内存DB上创建了一个SQLAlchemy声明式Base:

engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)

我正在使用它来进行单元测试逻辑.

有了这个我在DB中有我的表.但现在我希望使用alembic迁移某些东西.

AFAIK env.pyalembic 迁移使用run_migrations_online,并使用一个名为engine_from_config在此创建新引擎的SQLAlchemy函数.

我想要解决的问题是有一种方法可以使用先前创建的连接,该连接保存最近创建的表,用于alembic迁移.

我在我的测试脚本上使用了这个:在应用程序代码中使用Alembic API,以便我的脚本在上一次create_all调用之后执行以下操作:

import alembic.config
alembicArgs = ['--raiseerr', '-x', 'dbPath=sqlite:///:memory:', 'upgrade', 'head']
alembic.config.main(argv=alembicArgs
Run Code Online (Sandbox Code Playgroud)

[请注意,我只是通过Base.metadata.create_all(engine)调用创建我的模式,但我的alembic版本不仅包含模式更改,它们还有一些目录表数据的填充,这就是为什么我打算在这里使用alembic.事实上,如果我的alembic迁移持有一些"创建表"逻辑,那么这两者就会发生冲突.所以我可以安全地删除create_all调用并依赖于alembic来创建我的模式.]

已经修改了我的alembic env.py:

def run_migrations_online():
    ini_section = config.get_section(config.config_ini_section)

    db_path = context.get_x_argument(as_dictionary=True).get('dbPath')

    if db_path:
        ini_section['sqlalchemy.url'] = db_path

    connectable = engine_from_config(
        ini_section,
        prefix ... # everything from here the same as default env.py
Run Code Online (Sandbox Code Playgroud)

据我所知,connectable=engine_from_config在新sqlite:///:memory:数据库上创建了与新引擎的连接,这就是为什么我无法通过alembic升级我脚本中先前创建的数据库的原因create_all(engine).

所以...... TLDR; 有没有办法将我以前存在的引擎连接(使用我创建的表)传递给alembic,以便它可以迁移它?(我很确定我创建的dbPath arg在这里没用,事实上,我只是复制我引用的其他帖子使用的内容).

python sqlite sqlalchemy database-migration alembic

9
推荐指数
1
解决办法
888
查看次数

字典检索和列表索引哪个更快?

我正在尝试确定哪种数据结构最适合我的需求。

除了技术细节之外,我可能会将程序的需求转换为使用字典或使用列表,并且由于性能将成为一个问题,我想知道什么可能是更快的解决方案。我最终得出的结论是,检索/索引将是关键操作。

那么在内存使用和速度方面什么更有效呢?

python profiling dictionary list

8
推荐指数
2
解决办法
7282
查看次数

Mercurial撤消三个hg推

我正在使用mercurial VCS,我错误地推了三次提交,我希望它们被撤消,这可以实现吗?我很确定没有任何更改传播给我推送到的存储库中的任何人,所以我相信这不会破坏任何人的代码......

我已经尝试过hg rollback但是因为我已经推动了我无法以正确的方式撤消任何内容.我也知道hg退出,但我不确定我是否应该使用这个我需要的...

谢谢!

编辑

这是图形日志,我忘了提到一些提交是合并的一部分,但它们也需要撤消...

tip
|
a
| \
|   b
| /
c
|
d
Run Code Online (Sandbox Code Playgroud)

我需要将提示返回到c,或者d如果由于合并没有其他方法可以阻止它...

mercurial

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

每个输入的ModelMultipleChoiceField标签的django复选框形式

我有以下表格:

from models import MyModel

class MultProgresemosReferenciasForm(forms.Form):
    selected = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple,
                    queryset=MyModel.objects.filter(active=True))                   
Run Code Online (Sandbox Code Playgroud)

我将在以下模板中使用:

  <form action="" method="post">                                                                                             
      {% for field in form %}                                                                                                
        {{ field }}
      {% endfor %}                                                                                                           
      {% csrf_token %}                                                                                                       
      <input type="submit" value="Submit Selected" />
  </form>                                                                                                                    
Run Code Online (Sandbox Code Playgroud)

其中呈现以下html:

  <form action="" method="post">
    <ul>
<li><label for="id_selected_1"><input type="checkbox" name="selected" value="9" id="id_selected_8" /> prog 1420000930 - pp 0.0078125</label></li>
<li><label for="id_selected_2"><input type="checkbox" name="selected" value="10" id="id_selected_9" /> prog 1420001041 - pp 0.00390625</label></li>
    </ul>
      <div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='csrf_token_hash_string...' /></div>
      <input type="submit" value="Submit Selected" />
  </form>
Run Code Online (Sandbox Code Playgroud)

如您所见,模板为每个复选框获取一些标签(来自模型,其中有两个字符串字段,其中包含您可以在其中看到的值).

问题是,我如何进入复选框的标签并自定义它们?我正在尝试使用这些相同型号的名称,但需要进行一些调整.在django有一个简单的方法来实现这个目标吗? …

django checkbox label django-templates

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

使用 winpdb 调试远程脚本

我正在尝试使用 winpdb 在远程机器上调试 python 脚本。

问题是我想运行 rpdb2(winpdb 的控制台版本)在我的远程机器上启动服务器来运行脚本。

然后,在我的本地机器上,我想启动 winpdb 作为客户端以连接到 rpdb2 服务器进行本地调试。

我在 localhost 时设法做到了这一点,例如:

服务器:“远程”(但在本地主机中运行):

screen rpdb2 -s -d -r script.py
Run Code Online (Sandbox Code Playgroud)

客户端:“本地”(也在本地主机中):

winpdb -olocalhost -a script.py
Run Code Online (Sandbox Code Playgroud)

这工作正常。现在我只是在远程主机中使用了相同的服务器行,并将客户端行 -o 选项更改为服务器地址。但是,现在在我的客户端中,winpdb 说它找不到要附加到的 script.py。有什么我应该首先考虑来完成它的吗?

python debugging winpdb

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

有没有办法在Python中编写脚本来更改Linux中的用户密码?如果是这样,怎么样?

我正在尝试用Python编写一些脚本,偶然发现需要在Linux系统中更新给定用户的密码......

更新:目标是实现脚本从给定的数据/算法自动更新密码.重要的是没有人为干预......

有没有办法实现这一目标?或者我应该通过其他方式搜索?

谢谢!

python linux authentication

5
推荐指数
2
解决办法
7573
查看次数

SQL:选择行不在同一个表中的条件的事务

我有一个交易表:

Transactions
------------
id | account | type | date_time             | amount
----------------------------------------------------
 1 | 001     | 'R'  | '2012-01-01 10:01:00' | 1000
 2 | 003     | 'R'  | '2012-01-02 12:53:10' | 1500
 3 | 003     | 'A'  | '2012-01-03 13:10:01' | -1500
 4 | 002     | 'R'  | '2012-01-03 17:56:00' | 2000
 5 | 001     | 'R'  | '2012-01-04 12:30:01' | 1000
 6 | 002     | 'A'  | '2012-01-04 13:23:01' | -2000
 7 | 003     | 'R'  | '2012-01-04 …
Run Code Online (Sandbox Code Playgroud)

mysql sql subquery

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

python:在字符串中随机播放字符以获取所有可能的字符串组合

只是在Python中寻找一个脚本,它接收一些字符串并返回所有可能的字符串,这些字符串由原始字符串中字符的所有可能组合组成......

我发现脚本随机乱把字符串中的字符,但它们只返回一个randome组合,而我正在寻找的是所有可能的组合......

比方说,例如:

script.py "abc"
abc
acb
bac
bca
cab
cba
Run Code Online (Sandbox Code Playgroud)

谢谢!

python string combinations

4
推荐指数
2
解决办法
7599
查看次数

Python模拟对象实例化

使用Python 2.7和模拟库

如何使用模拟测试是否已使用某些特定参数初始化某些修补对象?

这里有一些示例代码和伪代码:

unittest.py:

import mock
@mock.patch('mylib.SomeObject')
def test_mytest(self, mock_someobject):
  test1 = mock_someobject.return_value
  test1 = method_inside_someobject.side_effect = ['something']

  mylib.method_to_test()

  # How can I assert that method_to_test instanced SomeObject with certain arguments?
  # I further test things with that method_inside_someobject call, no problems there...
Run Code Online (Sandbox Code Playgroud)

mylib.py:

from someobjectmodule import SomeObject
def method_to_test():
  obj = SomeObject(arg1=val1, arg2=val2, arg3=val3)
  obj.method_inside_someobject()
Run Code Online (Sandbox Code Playgroud)

那么,如何测试SomeObject的实例是arg1 = val1,arg2 = val2,arg3 = val3?

python unit-testing mocking

4
推荐指数
1
解决办法
2913
查看次数