小编ssc*_*ssc的帖子

jQuery和XPath XML解析

我想用jQuery解析XML.是否可以使用XPath进行解析?在jQuery中是否有任何功能?

xml jquery xpath

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

MongoDB:如何安全地存储凭证?

上下文

在我当前的Web应用程序项目中,我通过使用MongoDB shell执行的许多JavaScript文件来设置MongoDB数据库,包括服务器管理员和项目用户.

我似乎找不到以安全的方式处理root或使用密码的方法:

问题1:创建用户

这是我用来创建超级用户和项目用户的示例JavaScript文件:

use admin

db.createUser(
{
    user: "root",
    pwd: "abc123",
    roles: [
    {
        role: "root",
        db: "admin"
    }]
})

use project_db

db.createUser(
{
    user: "project_admin",
    pwd: "def456",
    roles: [
    {
        role: "dbOwner",
        db: "project_db"
    }]
})
Run Code Online (Sandbox Code Playgroud)

显然,此文件受版本控制.我怎么不在那里存储明文密码?!?该db.createUser(...)文档明确地陈述明文口令必须被传递(使用外部用户数据库时除外).

说真的?!?

问题2:使用凭据

我在访问数据库时找到了三种传递凭证的方法(例如运行数据库设置脚本); 它们都没有令人满意地工作:

在命令行上进行身份验证

mongo可执行文件采取相应的参数:

mongo --username project_admin            \
      --password def456                   \
      --authenticationDatabase project_db \
    < "${path_to_db_build_script}"
Run Code Online (Sandbox Code Playgroud)

问题:密码在例如ps输出中可见.不能接受的.
传球--username project_admin只能失败Error: Missing expected field "pwd" …

javascript authentication credentials mongodb

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

SQLAlchemy:映射器是否会更改我的对象?

我试图使用SQLAlchemy版本将我的对象存储在数据库中.我有一个save(...)功能:

#!/usr/bin/env python
# encoding: utf-8

from sqlalchemy     import Column, Integer, MetaData, String, Table, create_engine
from sqlalchemy.orm import mapper, sessionmaker

class MyClass(object):
    def __init__(self, title):
        self.title = title
    def __str__(self):
        return '%s' % (self.title)

def save(object_list):
    metadata = MetaData()
    my_class_table = Table('my_class',
                            metadata,
                            Column('id',    Integer,     primary_key=True),
                            Column('title', String(255), nullable=False))

    # everything is OK here, output:
    # some title
    # another title
    # yet another title

    for obj in object_list:
        print obj

    mapper(MyClass, my_class_table)

    # on Linux …
Run Code Online (Sandbox Code Playgroud)

python orm sqlalchemy

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

React MUI TreeView / React DnD:如何使用可拖动组件?

在我的 React Web 应用程序中,我想

  1. 将项目从左侧的MUI TreeView拖动到右侧的放置目标之一
  2. 在放置目标之间拖放项目

用户界面模型:

MUI TreeView UI 样机

第二部分已经可以工作了。

至于第一部分,我确实设法使它们可拖动(遵循React DnD 基本示例),并且我可以将它们从树视图拖动到放置目标中:

const DraggableTreeItem = (props: TreeItemProps) => {
  const [{ isDragging }, drag] = useDrag({
    collect: (monitor: DragSourceMonitor) => ({
      isDragging: monitor.isDragging()
    }),
    item: props,
    type: MyDnDItemType
  })
  return (
    <TreeItem ref={drag} {...props}/>
  )
}

export default DraggableTreeItem;
Run Code Online (Sandbox Code Playgroud)

我的问题:我希望树视图中的项目看起来与放置目标中的项目相同,以保持一些“UI 一致性”,即在视觉上立即明显看出这些项目是相同的:而不仅仅是 MUI“内置-在“简单的字符串中,我想要带有彩色图标(和字符串)的相同项目框:在我看来,理想情况下我应该在整个过程中使用相同的组件。

我已经搞乱了MUI TreeView 文档中的ContentComponent 属性示例,但在我看来,当我采用这种方法时,我需要重新实现(即重复)许多内置树功能(扩展节点) 、折叠、选择等)。

我还尝试理解 MUI TreeView 文档Gmail 克隆示例,但其中似乎有太多不相关的内容,以至于我看不到所有树木的森林。另外,我不确定这个 MUIstyled(TreeItem)(({ theme })概念是否旨在实现我想要实现的目标。

我的问题:如何使用我自己的(可拖动)组件作为树视图项?

treeview typescript reactjs material-ui react-dnd

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

python:如何中断正则表达式匹配

我迭代了大量下载的文本文件中的行,并在每一行上进行正则表达式匹配.通常,匹配不到一秒钟.但是,有时匹配需要几分钟,有时匹配根本没有完成,代码只是挂起(等了一个小时几次,然后就放弃了).因此,我需要引入某种超时并以某种方式告诉正则表达式匹配代码在10秒左右后停止.我可以忍受这样一个事实,即我将丢失正则表达式应该返回的数据.

我尝试了以下(当然,在一个代码示例中显示了2个不同的,基于线程的解决方案):

def timeout_handler():
    print 'timeout_handler called'

if __name__ == '__main__':
    timer_thread = Timer(8.0, timeout_handler)
    parse_thread = Thread(target=parse_data_files, args=(my_args))
    timer_thread.start()
    parse_thread.start()
    parse_thread.join(12.0)
    print 'do we ever get here ?'
Run Code Online (Sandbox Code Playgroud)

但我既没有得到输出中timeout_handler calleddo we ever get here ?行也没有,代码只是被卡住了parse_data_files.

更糟糕的是,我甚至无法停止该程序CTRL-C,而是需要查找python进程号并终止该进程.一些研究表明Python人员知道正在运行的正则表达式C代码:http://bugs.python.org/issue846388

我确实使用信号取得了一些成功:

signal(SIGALRM, timeout_handler)
alarm(8)
data_sets = parse_data_files(config(), data_provider)
alarm(0)
Run Code Online (Sandbox Code Playgroud)

这让我得到timeout_handler called了输出中的一行 - 我仍然可以停止使用我的脚本CTRL-C.如果我现在修改timeout_handler,如下所示:

class TimeoutException(Exception): 
    pass 

def timeout_handler(signum, frame):
    raise TimeoutException()
Run Code Online (Sandbox Code Playgroud)

并且将实际调用包含re.match(...)try... …

python regex multithreading signals timeout

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

Qt Quick 1.1:如何删除QML列表视图中的元素?

在我的应用程序UI中,我在QML列表视图中显示了许多元素,当其中一个元素被删除时,它应该以动画方式向上滑动到它上面的元素后面.实现这一目的的代码与Qt文档中的这个示例非常相似,只是我为y坐标设置动画而不是动画scale,我需要递减z值以确保元素向后滑动而不是在它上面的元素前面:

Component {
    id: delegate
    Item {
        ListView.onRemove:
            SequentialAnimation {
                // enable delayed removal
                PropertyAction {
                    target: wrapper
                    property: "ListView.delayRemove"
                    value: true
                }
                // make box slide up behind rather
                // than in front of the box above
                PropertyAction {
                    target: wrapper
                    property: "z"
                    value: wrapper.z - 1
                }
                NumberAnimation {
                    target : wrapper
                    property : "y"
                    from : wrapper.y
                    to   : wrapper.y - wrapper.height
                    duration    : style.removeTransitionDuration …
Run Code Online (Sandbox Code Playgroud)

animation qt listview qml qt-quick

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

导入具有相同名称的python模块

我有几个python项目,他们都有一个conf包:

/some_folder/project_1/
  conf/
    __init__.py
    some_source_file.py

/another_folder/project_2/
  conf/
    __init__.py
    another_source_file.py
Run Code Online (Sandbox Code Playgroud)

对于每个项目,我在site-packages文件夹中使用以下内容创建了一个.pth文件:

.../site-packages/project_1.pth:
import sys; sys.path.append('/some_folder/project_1/')

.../site-packages/project_2.pth:
import sys; sys.path.append('/another_folder/project_2/')
Run Code Online (Sandbox Code Playgroud)

我可以访问以下模块/some_folder/project_1/:

import conf.some_source_file
Run Code Online (Sandbox Code Playgroud)

但不是以下模块/another_folder/project_2/:

import conf.another_source_file
AttributeError: 'module' object has no attribute 'another_source_file'
Run Code Online (Sandbox Code Playgroud)

看起来好像python只搜索conf任何文件夹下面的第一个路径sys.path.有办法解决这个问题吗?

python import module

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

React Native:&lt;string&gt;.matchAll 不是函数

运行我的 React Native 应用程序时出现奇怪的错误:

一些示例代码:

const { url } = <incoming object>;
const reURL   = <my regex>;

console.debug('url:', url);
console.debug('typeof url:', typeof url);

matches = [...url.matchAll(reURL)];
Run Code Online (Sandbox Code Playgroud)

日志输出:

url: <as expected>
typeof url: string
Run Code Online (Sandbox Code Playgroud)

错误信息:

TypeError: url.matchAll is not a function. (In 'url.matchAll(reURL)', 'url.matchAll' is undefined)
Run Code Online (Sandbox Code Playgroud)

在 iOS 上一切正常,错误仅发生在 Android 上。

相当新的环境,npm几天前更新了所有软件包。

有谁知道从哪里开始寻找解决方案?

javascript android react-native

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

twisted manhole:如何在应用程序中访问服务器?

我需要在运行时连接到我扭曲的应用程序,并且我正在尝试使用twisted.manhole为我工作.我在Mac OSX 10.6上使用默认安装的扭曲8.2.

使用twistd示例服务器工作.在启动时有关于md5,sha和twisted.protocols.telnet的DeprecationWarnings,但是沙井服务器实际上做了它应该做的事情,我可以访问我的应用程序的内部:

host:client user$ telnet localhost 4040
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

twisted.manhole.telnet.ShellFactory
Twisted 8.2.0
username: admin
password: *****
>>> dir()
['_', '__builtins__', 'factory', 'service']
>>> factory
<twisted.manhole.telnet.ShellFactory instance at 0x101256440>
>>> service
<twisted.application.internet.TCPServer instance at 0x10124ff38>
>>> service.parent
<twisted.application.service.MultiService instance at 0x1014b0cf8>
>>> 
Run Code Online (Sandbox Code Playgroud)

现在我尝试将其集成到我的应用程序中:

# test_manhole.tac

from twisted.application.internet import TCPServer
from twisted.application.service  import Application, IServiceCollection
from twisted.manhole.telnet       import ShellFactory

shell_factory = ShellFactory()
shell_factory.username = 'admin'
shell_factory.password …
Run Code Online (Sandbox Code Playgroud)

python twisted telnet

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

pgtap:预期和获得的结果相等,但测试失败

我使用pgtap来测试postgresql存储过程.其results_eq函数获取存储过程的结果,将其与预期结果进行比较,如果两者不相等则报告失败.

这是我正在运行的代码:

PREPARE result_have AS SELECT select_some_data(12345, 'test_string');
PREPARE result_want AS VALUES ('("2010-09-07 06:05:00+00",100.0)');
SELECT results_eq('result_have', 'result_want');
Run Code Online (Sandbox Code Playgroud)

这是失败输出:

not ok 21
# Failed test 21: "this should return a result"
#     Columns differ between queries:
#         have: ("(""2010-09-07 06:05:00+00"",100.0)")
#         want: ("(""2010-09-07 06:05:00+00"",100.0)")
# Looks like you failed 1 test of 21
Run Code Online (Sandbox Code Playgroud)

我可能真的睡不着觉,但想要和我看起来很相似.

有谁知道为什么这被报告为失败?


有关详细信息的更新:这是我如何定义有问题的存储过程:

CREATE OR REPLACE FUNCTION select_some_data
(
    IN p_some_pkey integer,
    IN p_some_code varchar(16)
)
RETURNS TABLE(timestamp_utc timestamp with time zone, …
Run Code Online (Sandbox Code Playgroud)

postgresql unit-testing pgtap

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