小编jaz*_*lue的帖子

config.from_object在使用Python 3的Flask中不起作用

我有以下Flask代码,文件__init__.py:

from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from flask_sqlalchemy_session import flask_scoped_session

from . import configmodule

app = Flask(__name__)

engine = create_engine(configmodule.DevelopmentConfig.SQLALCHEMY_DATABASE_URI)  # <--- THIS WORKS

session_factory = sessionmaker(bind=engine)
session = flask_scoped_session(session_factory, app)

app.config.from_object('configmodule.DevelopmentConfig')  # <--- THIS FAILS IN Python 3

                                 ...
Run Code Online (Sandbox Code Playgroud)

文件configmodule.py与上面的__init__.py位于同一目录中.

在使用python 3.5.2运行它之后,我得到:

werkzeug.utils.ImportStringError: import_string() failed for 'configmodule.DevelopmentConfig'. Possible reasons are:

- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking …
Run Code Online (Sandbox Code Playgroud)

python flask python-3.x

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

Python类继承和__dict__查找

假设我定义了A类:

>>> class A:
...     a = 1
...     class SubA:
...         sub_a = { 'a': 1, 'b': 1}
Run Code Online (Sandbox Code Playgroud)

然后我定义继承自A的B类:

>>> class B(A):
...     pass
Run Code Online (Sandbox Code Playgroud)

现在,检查__dict__ A和__dict__ B的:

>>> A.__dict__
{'a': 1, '__module__': '__builtin__', '__doc__': None, 'SubA': <class __builtin_ _.SubA at 0x02CAA3E8>}
>>> B.__dict__
{'__module__': '__builtin__', '__doc__': None}
Run Code Online (Sandbox Code Playgroud)

不知何故,B .__ dict__既不包含'a'也不包含'SubA'.现在如果我们这样做:

>>> A.a
1
>>> B.a
1

>>> A.SubA
<class __builtin__.SubA at 0x02CAA3E8>
>>> B.SubA
<class __builtin__.SubA at 0x02CAA3E8>
Run Code Online (Sandbox Code Playgroud)

第一个问题:为什么B .__ …

python oop inheritance class

3
推荐指数
2
解决办法
3000
查看次数

不能使用setParseAction()方法来pickle Pyparsing表达式.需要多处理

我的原始问题是我正在尝试执行以下操作:

def submit_decoder_process(decoder, input_line):
    decoder.process_line(input_line)
    return decoder

self.pool = Pool(processes=num_of_processes)
self.pool.apply_async(submit_decoder_process, [decoder, input_line]).get()
Run Code Online (Sandbox Code Playgroud)

解码器在这里有点介绍,但重要的是解码器是一个用调用setParseAction()的PyParsing表达式初始化的对象.这会使多处理使用的pickle失败,这反过来又失败了上面的代码.

现在,这是我已经孤立和简化的pickle/PyParsing问题.由于pickle失败,以下代码会产生错误消息.

import pickle
from pyparsing import *

def my_pa_func():
    pass

pickle.dumps(Word(nums).setParseAction(my_pa_func))
Run Code Online (Sandbox Code Playgroud)

错误信息:

pickle.PicklingError: Can't pickle <function wrapper at 0x00000000026534A8>: it's not found as pyparsing.wrapper
Run Code Online (Sandbox Code Playgroud)

现在,如果你删除调用.setParseAction(my_pa_func),它将没有问题:

pickle.dumps(Word(nums))
Run Code Online (Sandbox Code Playgroud)

我怎么能绕过它呢?多处理使用泡菜,所以我猜不出它.据说使用dill的pathos包不够成熟,至少,我在Windows-64bit上安装它时遇到问题.我真的在这里摸不着头脑.

python pickle pyparsing python-multithreading python-multiprocessing

3
推荐指数
1
解决办法
751
查看次数

"下拉"选定值未在HTML中更新

当我在下拉菜单中选择一个新值(3)时,我看到HTML仍旧旧值(10)为"已选中".

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10" selected="selected">10</option>
Run Code Online (Sandbox Code Playgroud)

编辑1:克隆表单时问题就出现了.克隆的副本将重置其选定的选项.有没有办法克隆选定的值?

javascript forms html-select

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

SystemVerilog:向工厂注册 UVM 测试

我对以下用于向工厂注册 UVM 测试的 SystemVerilog 构造感到困惑:

class random_test extends uvm_test;
    `uvm_component_utils(random_test);
    ...
    function new (...
Run Code Online (Sandbox Code Playgroud)

这里我们有一个类的定义random_test,在定义内部我们调用一个方法,而它的参数是正在定义的类。

这是我的问题:

  1. `uvm_component_utils甚至在 random_test 类构造任何对象之前是否在时间 0 调用?
  2. 我们如何`uvm_component_utils在该类定义中传递一个类?

factory class system-verilog uvm

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

Python多重处理:按值传递对象?

我一直在尝试以下方法:

from multiprocessing import Pool

def f(some_list):
    some_list.append(4)
    print 'Child process: new list = ' + str(some_list)
    return True

if __name__ == '__main__':

    my_list = [1, 2, 3]
    pool = Pool(processes=4)
    result = pool.apply_async(f, [my_list])
    result.get()

    print 'Parent process: new list = ' + str(my_list)
Run Code Online (Sandbox Code Playgroud)

我得到的是:

Child process: new list = [1, 2, 3, 4]
Parent process: new list = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

因此,这意味着my_list是按值传递的,因为它没有突变。那么,是否将规则传递给另一个进程时确实按值传递规则呢?谢谢。

python pass-by-reference pass-by-value threadpool python-multiprocessing

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

将元素拟合到表格单元格中

我试图将一个canvas元素放入一个没有填充的表格单元格中,即我想在画布和单元格的顶部/底部之间没有边距.因此,我将行高定义为20px,将画布高度定义为20px.我也使用填充:0px样式.但是,我从顶部和左边都没有填充,我仍然在底部填充填充.事实上,看起来表格单元格更高,以适应不希望的边缘.我该如何解决?

另外,在HTML和CSS中定义画布宽度和高度有什么区别?一个会超越另一个吗?

下面是我的HTML代码.谢谢.

<!doctype html>
<html lang="en">
<html>
<head>
<meta charset="utf-8">
<title>experiment</title>
<body>

<script>
  $(function() {
      var canvas = document.getElementById('my_canvas');
      var ctx = canvas.getContext('2d');    
      ctx.fillRect(0,0,20,20);  
      $("#my_table > tbody > tr:eq(0) > td:eq(0)").append($("#my_canvas"));
  })

</script>
</head>

<style media="screen" type="text/css">

    .my_cell {height:20px; width:100px; padding:0}
    .my_canvas {height:20px; width:20px}
</style>

<table id="my_table" border="1" cellspacing="0" cellpinserting="0">
<tbody>
    <tr><td class="my_cell"></td></tr>
</tbody>
</table>

<canvas id="my_canvas" class="my_canvas" width="20" height="20"></canvas>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript css canvas css-tables

0
推荐指数
1
解决办法
1919
查看次数