小编use*_*ser的帖子

为什么Django明确地在唯一字段上创建索引

更新:通过psql进一步的实验简化Q :

对于以下Django模型:

class Book(models.Model):
    name = models.TextField(unique=True)
Run Code Online (Sandbox Code Playgroud)

pg_dump (PostgreSQL 9.3)显示了以下表格和约束:

CREATE TABLE book (
    id integer NOT NULL,
    name text NOT NULL,
);

ALTER TABLE ONLY book ADD CONSTRAINT book_name_key UNIQUE (name);

CREATE INDEX book_name_like ON book USING btree (name text_pattern_ops);
Run Code Online (Sandbox Code Playgroud)

但PostgreSQL 文档说:

当为表定义唯一约束[...]时,PostgreSQL会自动创建唯一索引.

[...] 无需在唯一列上手动创建索引; 这样做只会复制自动创建的索引.

问题:为什么Django会在一个唯一的列上创建索引呢?也许理由是它使用运算符类text_pattern_ops,因此Django需要添加另一个索引.如果是这种情况,更好的方法是将unique=TrueDjango的约束解释为:

CREATE UNIQUE INDEX book_name_like ON book USING btree (name text_pattern_ops);
Run Code Online (Sandbox Code Playgroud)

根本没有UNIQUE列中的约束.因此,单个UNIQUE INDEXwith text_pattern_ops …

sql django postgresql django-models postgresql-9.3

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

使用Javascript(或jQuery)淡入/淡出HTML元素的背景颜色

我有一个表,其行需要突出显示然后清除.我正在使用上下文类来为表行着色(不是必需的要求).javascript部分如下.我怎么能使用javascript/jQuery/Bootstrap动画即fadeIn/fadeOut行的颜色.下面的代码会立即添加和删除颜色.

$('tr').eq(1).addClass('success');

setTimeout(function(){
    $('tr').eq(1).removeClass('success');
},2000);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/5NB3s/

PS试图避免jQuery UI的位置的路线怎么淡入/淡出使用jQuery背景颜色?

javascript jquery fade twitter-bootstrap

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

Django - 是否可以直接在设置文件中从云服务加载机密/密码/动态值

我想在应用程序启动时从云动态加载我的 Django 设置文件中的一些值,即:

  1. 数据库密码
  2. 数据库IP地址

将 python 代码添加到设置文件以从云中检索这些值是否是一个好习惯?

我相信这些只会在应用程序启动时加载一次,即它们不会对我的应用程序的性能产生不利影响。

例如 :

# ~ settings.py ~

# retrieve data from the cloud, directly in the settings file
db_password   = get_my_secrets()
db_ip_address = discover_db_ip()

# configure the database with these dynamic values
DATABASES = {
    'default': {
        'PASSWORD': db_password,
        'HOST'    : db_ip_address,
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一篇相关文章(@Adiii 分享):云中的 Django 设置

django amazon-ec2 amazon-web-services google-cloud-platform

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

Scrapy中间件订单

Scrapy 文档说:

第一个中间件是靠近引擎的中间件,最后一个是靠近下载器的中间件.

要确定分配给中间件的顺序,请参阅DOWNLOADER_MIDDLEWARES_BASE设置,并根据要插入中间件的位置选择一个值.订单确实很重要,因为每个中间件执行不同的操作,您的中间件可能依赖于应用的某些先前(或后续)中间件

我并不完全清楚,更高的值是否会导致中间件首先被执行,反之亦然.

例如

'myproject.middlewares.MW1': 543,
'myproject.middlewares.MW2': 542,
Run Code Online (Sandbox Code Playgroud)

题 :

  1. 哪些将首先执行?我的试验说MW2将是第一个.
  2. 什么是订单的有效范围?0 - 999?

python middleware scrapy

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

在Django项目中安装Jinja2

新手问题,但我无法在Jinja2官方网站上或通过谷歌搜索找到足够的分步说明.

我目前的Django项目已经完成了一半,我不能再忍受不能在Django模板中使用queryset过滤器了.所以决定改用Jinja2.

我做了什么:pip安装jinja2到virtualenv.然后我尝试在我的模板文件中使用Jinja语法,这显然失败了......显然和遗憾

我还需要做些什么来使Jinja2工作?

django django-templates jinja2

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

Django:从IntegrityError中删除重复键异常

使用Django 1.6,当出现重复键时,我会收到异常

IntegrityError: duplicate key value violates unique constraint "..."
Run Code Online (Sandbox Code Playgroud)

Django也IntegrityError对其他类型的数据库违规使用异常.我想处理duplicate key特殊情况即

try:
    model = MyModel(name='xyz')
    model.save()
except MyModal.IntegrityError:
    if exception_due_to_duplicate_key:
        do_something()
except:
    do_something_else()
Run Code Online (Sandbox Code Playgroud)

是否有唯一的错误代码或我将解析错误消息.我试图避免get调用数据库以确定违规是由于重复键.

更新:我应该提到psycopg2由于我正在使用带有PostgreSQL的Django而抛出异常.

python django psycopg2 django-models

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

Django:按照 OWASP 的建议,属性中存在额外的 HTML 字符转义

Django 转义这些字符 : & < > " ',这足以在 HTML 元素中插入数据。但是,如果您想在属性中设置不受信任的数据,OWASP建议转义更多字符:

除字母数字字符外,请使用 &#xHH; 转义 ASCII 值小于 256 的所有字符。格式(或命名实体,如果可用)以防止切换出属性。

原因是,很容易错过属性上的引号,并且未加引号的属性可以用许多字符来分解,包括[space] % * + , - / ; < = > ^ and |

是否有内置函数或库可以实现此目的?

PS 另一篇值得一读的博客文章解释了为什么在某些情况下需要更广泛的转义函数。: http: //wonko.com/post/html-escaping

django xss html-encode html-entities owasp

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

CSS模糊过滤器不处理MS Edge中的某些伪元素

我在伪元素的背景图像上使用模糊滤镜.如果伪元素的z-index为-1,则模糊在Microsoft Edge中无效.它没有z-index.(您必须通过about:flagsEdge 手动启用CSS过滤器).

这是一个例子:http://codepen.io/anon/pen/WrZJZY?edit = 110

这是由于实验支持(在Edge中)还是我在这里做错了什么?它适用于其他浏览器(Chrome,Safari,Firefox).

.blur {
  position:relative;
  border: 4px solid #f00;
  height:400px; 
  width:400px;
}

.blur:before {
  content: "";
  position: absolute;
  width:400px;
  height:400px;
  z-index:-1;
  background-image:url('https://i-msdn.sec.s-msft.com/dynimg/IC793324.png');

  filter: blur(5px); 
  -webkit-filter: blur(5px);
  -moz-filter: blur(5px); 
  -o-filter: blur(5px); 
  -ms-filter: blur(5px); 
  filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='5'); 
}
Run Code Online (Sandbox Code Playgroud)

css css3 pseudo-element css-filters microsoft-edge

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

git设置用于2台计算机之间的备份和同步

我是git的新手.需要一些建议才能知道我的设置是否正确.请阅读以下内容:

我在我的开发计算机上使用git进行2个单独的项目,并希望备份USB驱动器上的所有内容(设置为git bare repo).另外,我想在另一台计算机上同步这些项目(用于部署).

计算机1上的2个项目路径是

/machine1/path/proj1
/machine1/path/proj2 
Run Code Online (Sandbox Code Playgroud)

这是我设置的方式(为proj2重复完全相同的步骤)

#Initialize git repo
cd /machine1/path/proj1
git init
git add .
git commit -a -m "proj 1 first commit"
Run Code Online (Sandbox Code Playgroud)
#Backup on USB
cd /usb/backup
mkdir proj1.git
cd proj1.git
git init --bare
cd /machine1/path/proj1
git push --mirror /usb/backup/proj1.git
Run Code Online (Sandbox Code Playgroud)
#Clone to other computer
cd /machine2/path
git clone /usb/backup/proj1.git

#After making changes on machine1, I update machine2 using this command
git pull /usb/backup/proj1.git
Run Code Online (Sandbox Code Playgroud)

题:

  1. 这些步骤是否适用于(i)设置,(ii)USB备份,(iii)同步到其他机器?或者是否有正确/更好的方法来做到这一点
  2. 我错误地执行了这些命令

cd /machine2/path/proj2
git pull /usb/backup/proj1.git  
Run Code Online (Sandbox Code Playgroud)

我希望git显示一条错误消息......类似于"尝试将proj2与proj1 repo同步",而是在proj1中创建了proj2的子目录.我的设置有缺点吗?我预计像这样的动作需要--force …

git version-control backup

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

Sublime Text 2 - 逗号分隔值的对齐方式

我已经安装了Sublime Alignment插件.它适用于对齐第一个字符(默认为=).如何在Sublime Text 2中一次性对齐此块:

插入用户VALUES(1,'Alpha','Beta','Delta');
插入用户值(2,'A','B','D');

看起来像 :

插入用户VALUES(1,'Alpha','Beta','Delta');
插入用户值(2,'A','B','D');

即使我,在sublime对齐中添加对齐字符,它也只适用于第一次出现,

indentation alignment sublimetext2

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