小编Omi*_*nus的帖子

sqlalchemy在多个列中是唯一的

假设我有一个代表位置的类.地点"属于"客户.位置由unicode 10字符代码标识."位置代码"在特定客户的位置中应该是唯一的.

The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Run Code Online (Sandbox Code Playgroud)

因此,如果我有两个客户,客户"123"和客户"456".它们都可以有一个名为"main"的位置,但两个位置都不能称为main.

我可以在业务逻辑中处理这个问题,但我想确保无法在sqlalchemy中轻松添加需求.unique = True选项似乎仅在应用于特定字段时才起作用,并且会导致整个表只有所有位置的唯一代码.

python sqlalchemy

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

Python排序列表/升序然后降序

如果我有一个列表,其中包含一个看起来像这样的列表......

['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
Run Code Online (Sandbox Code Playgroud)

我如何对它们进行排序,以便元素0按降序排序,元素1按升序排序,因此结果看起来像......

['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
Run Code Online (Sandbox Code Playgroud)

使用itemgetter我可以在元素0上反向传递,但是我然后使用元素,当然它会破坏前一种类型.我不能做一个组合键,因为它需要先降序然后升序.

TIA,PK

python sorting

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

knockout.js输入框事件更改 - 传递旧值

使用knockout.js将更改事件绑定添加到输入框时,会在触发事件时将旧值传递给change函数.我可以通过使用模糊来解决这个问题.这是预期的行为吗?是否使用change事件来获取旧值,然后使用普通选择器从dom获取值?这似乎反直觉.

jsFiddle示例

JavaScript
----------
var data = {
    saved_value:"1",
    value_changed: function(data){
        alert(data.saved_value());
    }
};
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);

HTML
----
Current Value:<span data-bind="text:saved_value"></span><br/>
<input data-bind="event:{change:value_changed},value:saved_value"></input>
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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

knockout.js根据数组是否为空来更改可见状态

我希望只有在数组中有项目时才能显示表格.我已经简化了我对这个jsfiddle例子的需求.

JS:

var view_model = {
    lines: ko.observableArray([
        {
        content: 'one'},
    {
        content: 'two'},
    {
        content: 'three'},
    {
        content: 'four'},
        ]),
    remove: function(data) {
        view_model.lines.remove(data);
    }
};

ko.applyBindings(view_model);
Run Code Online (Sandbox Code Playgroud)

HTML:

<span data-bind="visible:lines">Lines Exist</span> 
<ul data-bind='foreach:lines'>
    <li>
        <button data-bind="click:$parent.remove">
            Remove
        </button>
        <span data-bind="text:content"></span>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

基本上我有一个网络应用程序,可以从表中删除行.如果array.length == 0,我想隐藏整个表格.

knockout.js

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

SQLAlchemy声明:定义触发器和索引(Postgres 9)

在表的SQLAlchemy类中是否有一种方法可以为该表定义/创建触发器和索引?

例如,如果我有一个基本的表...

class Customer(DeclarativeBase):
    __tablename__ = 'customers'
    customer_id = Column(Integer, primary_key=True,autoincrement=True)
    customer_code = Column(Unicode(15),unique=True)
    customer_name = Column(Unicode(100))
    search_vector = Column(tsvector) ## *Not sure how do this yet either in sqlalchemy*.
Run Code Online (Sandbox Code Playgroud)

我现在想要创建一个触发器来更新"search_vector"

CREATE TRIGGER customers_search_vector_update BEFORE INSERT OR UPDATE
ON customers
FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(search_vector,'pg_catalog.english',customer_code,customer_name);
Run Code Online (Sandbox Code Playgroud)

然后我想将该字段添加为索引...

create index customers_search_vector_indx ON customers USING gin(search_vector);
Run Code Online (Sandbox Code Playgroud)

现在我从我的应用程序执行任何类型的数据库重新生成后,我必须为tsvector列添加列,触发器定义,然后是psql的索引语句.不是世界末日,而是容易忘记一步.我全都是关于自动化的,所以如果我能在应用程序设置期间完成这一切,那么奖金!

postgresql sqlalchemy turbogears

23
推荐指数
1
解决办法
7869
查看次数

Postgres默认排序由id - worldship

我需要设置worldship来从我们的一个postgres数据库中提取.我需要它,以便包按ID排序.我没有办法(我知道)让worldship发送order by子句,所以我需要让返回的记录的默认值由id返回.

在第二个注释我不知道postgres默认排序它在最后一次更改记录时看起来像所以如果我写了两个记录id 1,2然后在我运行查询时更改记录2它返回记录2成为第一.

postgresql ups-worldship

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

webpack react process.env总是空的(windows 10)

我已经阅读了堆栈溢出处的所有文章以及来自谷歌搜索的大约200篇文章,而且,对于我的生活,我无法理解process.env.无论我做什么,它总是一个空的对象.

const path = require("path");
const webpack = require('webpack');

module.exports = {
    entry: {
        search: './src/search/search_index.js',
        // search: './src/search/search_index.js'
    },
    output: {
        path: path.join(__dirname, "../website/public/javascript/react"),
        publicPath: '/',
        filename: "[name].bundle.js"
    },
    module: {
        loaders: [{
            exclude: /node_modules/,
            loader: 'babel',
            query: {
            presets: ['react', 'es2015', 'stage-1']
        }
    }]
    },
    resolve: {
        extensions: ['', '.js', '.jsx']
    },
    devServer: {
        historyApiFallback: true,
        contentBase: './'
    },
    plugins: [
        new webpack.DefinePlugin({
            "process.env" : {
                'NODE_ENV': '"production"'
            }
        })
    ]
};

"scripts": {
    "start": "webpack-dev-server --inline --hot …
Run Code Online (Sandbox Code Playgroud)

node.js npm reactjs webpack

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

VirtualEnv从bash脚本开始

我正在尝试编写一个应该是一个超级简单的bash脚本.基本上激活虚拟环境而不是更改到工作目录.我做了很多任务,并且只对一个命令做出了贡献.

基本上......

#!/bin/bash
source /usr/local/turbogears/pps_beta/bin/activate
cd /usr/local/turbogears/pps_beta/src
Run Code Online (Sandbox Code Playgroud)

但是当它运行时它只是转储回shell,我仍然在目录中运行脚本,并且环境未激活.

python bash virtualenv

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

Knockout.js ko.mapping.toJS在我的视图中没有刷新数据

我从服务器获取一个json对象并填充我的视图.然后我更改数据,将其推回服务器.然后我获取数据的新副本,希望它会刷新我的视图并进行任何更改.然而,这不会发生.TIA

$(document).ready(function() {
    var customer_id = get_customer_id();
    var data = load_model();
    contract_model = ko.mapping.fromJS(data,{});
    ko.applyBindings(contract_model);
}

function load_model(){
    var url = '/ar/contract_json?contract_id='+get_contract_id();
    var data = '';
    $.ajax({
        type:'GET',
        url:url,
        async:false,
        success: function(returningValue){
            data = returningValue;
        }
    });
    return data;
}
Run Code Online (Sandbox Code Playgroud)

这个初始加载工作正常.然后我做了一些事情并更改了一个observable并将数据推送回服务器.服务器获取更新,然后我重新获取数据,以便视图将刷新(我知道我可以一步传回新数据,但这在代码中我还没有重构).

function refresh_data(contract_model){
    var url = '/ar/contract_json?contract_id='+get_contract_id();
    $.post(url,function(data){
        console.log(data);
        ko.mapping.fromJS(contract_model,{},data);
        ko.applyBindings(contract_model);
        console.log(ko.mapping.toJS(contract_model))
    });

}

function refresh_data(contract_model){
    var url = '/ar/contract_json?contract_id='+get_contract_id();
    $.post(url,function(data){
        console.log(data);
        ko.mapping.fromJS(contract_model,{},data);
        console.log(ko.mapping.toJS(contract_model))
    });

}

function push_model(contract_model,refresh){
    var url = '/ar/update_contract';
    var data = {'contract':ko.mapping.toJSON(contract_model)}

    delete data['lines'];
    $.post(url,data,function(return_value){
        if …
Run Code Online (Sandbox Code Playgroud)

javascript knockout-mapping-plugin knockout.js

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

jQuery .on()与将事件绑定到选择器?

我正在查看此页面上的文档.他们有这样的例子......

$("p").on("click", function(){
alert( $(this).text() );
});

$("form").on("submit", false)

$("form").on("submit", function(event) {
  event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

为什么这样更好或者它与此有何不同......

$("p").click(function(){
alert( $(this).text() );
});

$("form").submit(false);

$("form").submit(function(event) {
  event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

作为最后一个问题,你为什么要这样做......

$("form").on("submit", function(event) {
  event.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

代替 ...

  $("form").submit(function(event) {
      event.preventDefault();
  });
Run Code Online (Sandbox Code Playgroud)

jquery

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