小编Jer*_*rry的帖子

什么是设计Cassandra数据模型的最佳实践?

还有哪些陷阱需要避免?你有什么优惠吗?例如,我听说导出/导入Cassandra数据非常困难,让我想知道这是否会妨碍生产数据与开发环境的同步.

顺便说一句,很难找到关于Cassandra的优秀教程,我唯一的http://hab.me/code/wtf-is-a-supercolumn-cassandra-data-model仍然非常基础.

谢谢.

database-design cassandra nosql

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

在SQLAlchemy中选择NULL值

这是我的(PostgreSQL)表 -

test=> create table people (name varchar primary key,
                            marriage_status varchar) ; 

test=> insert into people values ('Ken', 'married');
test=> insert into people values ('May', 'single');
test=> insert into people values ('Joe', NULL);
Run Code Online (Sandbox Code Playgroud)

我想选择被所有的人知道要结婚了,即包括那些NULL marriage_status.

这并不能正常工作-

test=> select * from people where marriage_status != 'married' ; 
 name | marriage_status 
------+-----------------
 May  | single
(1 row)
Run Code Online (Sandbox Code Playgroud)

当然这样做 -

test=> select * from people where marriage_status != 'married'
       or marriage_status is NULL ; 
 name | marriage_status 
------+----------------- …
Run Code Online (Sandbox Code Playgroud)

python sql database sqlalchemy

43
推荐指数
4
解决办法
5万
查看次数

在pl/sql中显示动态EXECUTE输出来自sqlplus

如何EXECUTE从PL/SQL中获取动态选择结果Oracle sqlplus

我正在编写一个简单的sqlplus脚本来收集NUMBER给定表的所有列的总和:

SET SERVEROUTPUT ON

DECLARE
        CURSOR column_cur IS
                SELECT column_name FROM ALL_TAB_COLS
                WHERE owner = '&scheme_name' AND table_name = '&table_name'
                AND data_type = 'NUMBER';
        sql_query VARCHAR2(32767);
BEGIN
        sql_query := 'select ';
        FOR column_rec IN column_cur LOOP
                sql_query := sql_query || 'SUM(' || column_rec.column_name ||
                        ') "SUM(' || column_rec.column_name || ')", ';

        END LOOP;
        sql_query := substr(sql_query, 0, length(sql_query)-2) || -- remove trailing ', '
                ' from &scheme_name' || '.&table_name';
        EXECUTE IMMEDIATE sql_query; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql sqlplus

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

Python线程挂起

我有一个遵循标准范例的简单线程Python程序:

class SearchThread(threading.Thread):
    def __init__(self, search_queue):
        threading.Thread.__init__(self)
        self.search_queue = search_queue

    def run(self):
        while True:
            try:
                search_url = self.search_queue.get(timeout=15)
                # <do Internet search and print output/>
            except Queue.Empty:
                self.search_queue.task_done()
                break
            except Exception, e:
                print e

if __name__ == '__main__':
    search_queue = Queue.Queue()    
    for i in range(200):
        t = SearchThread(search_queue)
        t.setDaemon(True)
        t.start()
    search_queue.join()
Run Code Online (Sandbox Code Playgroud)

队列中填充了大约1000个URL并且HTTP GET执行简单<do Internet search and print output/>.问题是,在处理了大约500-700个条目(只需几秒钟)之后,程序会一直挂起,没有输出,没有例外,没有任何内容.

我试过requests,urllib2,urllib3,httplib2HTTP GET但没有改变.

你如何调试挂起的线程Python程序?

顺便说一句,我在Ubuntu 11.10(64位)下使用Python 2.7.

编辑

当我盯着挂起过程中的gdb跟踪时,我和以前一样无能为力 …

python multithreading multiprocessing python-multithreading

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

PostgreSQL条件加入

假设我有以下表格 -

smallville=# create table contacts (name varchar(16), address_id int); 
CREATE TABLE
smallville=# create table addresses (address_id int, address varchar(16));
CREATE TABLE
smallville=# create table partners (name1 varchar(16), name2 varchar(16));
CREATE TABLE

smallville=# insert into contacts values ('Clark Kent', NULL), ('Loise Lane', 1);
INSERT 0 2
smallville=# insert into addresses values (1, 'Manhattan'), (2, 'North Pole');
INSERT 0 2
smallville=# insert into partners values ('Clark Kent', 'Loise Lane'),
             ('Loise Lane', 'Clark Kent') ; 
INSERT 0 2
Run Code Online (Sandbox Code Playgroud)

我可以得到姓名和地址 -

smallville=# select …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql stored-procedures join

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

Selenium WebDriver(2.25)超时不起作用

我想我已经阅读了Stack Overflow上的所有Selenium超时问题,但是我的Selenium webdriver 2.25(Python 2.7绑定)中的隐式和显式超时都没有工作,并且"no_timeout_here ="行都会永远挂起 -

browser = webdriver.Firefox()
browser.implicitly_wait(6)               
browser.set_page_load_timeout(30)        
browser.get("http://www.google.com")
try:
    #no_timeout_here = browser.find_element_by_id("id_not_found")
    no_timeout_here = WebDriverWait(browser, 5).until(lambda browser:
            browser.find_element_by_id("id_not_found"))
except:
    raise
Run Code Online (Sandbox Code Playgroud)

所有指针将不胜感激!

10月16日更新

感谢seleniumnewbie的全面解答,但是你的单元测试代码仍然依赖于我在Python 2.7下的Ubuntu 11.04(64位) -

(2012/10/17 11:51:58)$ time ./timeout.py 
^CTraceback (most recent call last):
...
KeyboardInterrupt

real    2m26.572s
user    0m0.368s
sys 0m0.232s

(2012/10/17 11:54:26)$ python -V
Python 2.7.2+

(2012/10/17 11:57:04)$ uname -a
Linux 3.0.0-26-generic #43-Ubuntu SMP Tue Sep 25 17:19:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

(2012/10/17 11:57:10)$ ls selenium-server-standalone-2.25.0.jar
Run Code Online (Sandbox Code Playgroud)

我可以知道您的OS/Python版本吗?

python selenium qa selenium-webdriver

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

Python unittest(使用SQLAlchemy)不写/更新数据库?

我很困惑为什么我的Python unittest运行完全没有实际更新数据库.

我甚至可以从SQLAlchemy看到SQL语句并逐步完成新创建的用户对象的电子邮件 -

...INFO sqlalchemy.engine.base.Engine.0x...954c INSERT INTO users (user_id, user_name, email, ...) VALUES (%(user_id)s, %(user_name)s, %(email)s, ...)
...INFO sqlalchemy.engine.base.Engine.0x...954c {'user_id': u'4cfdafe3f46544e1b4ad0c7fccdbe24a', 'email': u'test@example.com', ...}
> .../tests/unit_tests/test_signup.py(127)test_signup_success()
-> user = user_q.filter_by(user_name='test').first()
(Pdb) n
...INFO sqlalchemy.engine.base.Engine.0x...954c SELECT users.user_id AS users_user_id, ...
FROM users 
WHERE users.user_name = %(user_name_1)s 
 LIMIT 1 OFFSET 0
...INFO sqlalchemy.engine.base.Engine.0x...954c {'user_name_1': 'test'}
> .../tests/unit_tests/test_signup.py(128)test_signup_success()
-> self.assertTrue(isinstance(user, model.User))
(Pdb) user
<pweb.models.User object at 0x9c95b0c>
(Pdb) user.email
u'test@example.com'
Run Code Online (Sandbox Code Playgroud)

然而,在同一时间,当我登录到测试数据库,我也没有看到新的记录在那里.Python/unittest/SQLAlchemy/Pyramid/PostgreSQL的一些功能是否完全没有意识到?

谢谢.

杰瑞

python postgresql unit-testing sqlalchemy pyramid

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

JQuery AJAX HTML查找不起作用

我在SO上读过类似的Q/A但这个简单的JQuery AJAX代码仍然让我疯狂 -

$.get($('#pager a').attr('href'), function(data) {
    var data = $(data).wrap("<div />");
    console.log(data);
    console.log(data.find('.content'));
    console.log(data.find('#next_page'));
}, "html");
Run Code Online (Sandbox Code Playgroud)

AJAX调用返回的HTML是 -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head></head>
  <body>
    <div class="content">lorum</div>
    <div class="content">ipsum</div>
    <div id="next_page">
      <a href="/page/2"></a>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和控制台日志 -

[<TextNode textContent="\n\n \n \n ">, div.content, <TextNode textContent="\n ">, div.content, <TextNode textContent="\n ">, div#next_page, <TextNode textContent="\n \n">]
[ ]
[ ]
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活弄清楚为什么data.find('.content')和data.find('#next_page')什么都不匹配.

任何指针将不胜感激!

html javascript jquery

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

如何找到拦截我的表单提交的内容?

我的<form>提交没有做任何事情,我认为这是因为某些JQuery代码拦截了这个动作(还有什么呢?).在我相当复杂的Web应用程序中,我甚至无法找到拦截操作的代码行 - 是的我写了它们的每一行,但我仍然不知道.

问题是:一般来说,是否有一种有效的方法来跟踪哪一段JavaScript代码拦截指定的操作?

javascript ajax jquery

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