我正在尝试通过导入带有url的csv文件来创建一个sqlite数据库.该文件有大约600万字符串.这是我用过的命令
create table urltable (url text primary key);
.import csvfile urldatabase
Run Code Online (Sandbox Code Playgroud)
大约300万网址后,速度减慢了很多,我的硬盘不断旋转.我已经尝试将csv文件拆分为1/4块但我遇到了同样的问题.
我在stackoverflow上阅读了类似的帖子,尝试使用BEGIN...COMMIT块,PRAGMA synchronous=OFF但没有一个帮助.我能够创建数据库的唯一方法是从url中删除主键约束.但是,当我运行一个select命令来查找特定的url时,需要2-3秒,这对我的应用程序不起作用.在url上设置主键时,选择是即时的.请告诉我我做错了什么.
[编辑] 有助于提出的建议摘要:
仍然,使用主索引,数据库大小是我尝试导入的原始csv文件的两倍多.有什么方法可以减少吗?
我有一个MyModel基于某些条件从中获取的Django查询:
if beta:
MyModel.object.filter(x=alpha, y=beta)
else:
MyModel.object.filter(x=alpha)
Run Code Online (Sandbox Code Playgroud)
是否有可能取消if beta:检查并在一行中完成检查,即y仅在beta未检查时才打开查询过滤器None
这是一种好方法(Djangonic):
MyModel.object.filter(**{'x':alpha, 'b':beta} if beta else **{'x':alpha})
Run Code Online (Sandbox Code Playgroud)
还是有可能做这样的事情(我知道以下错误,但是可以修正以给出正确的含义吗?):
MyModel.object.filter(Q('x'=alpha) & (beta && Q('y'=beta)))
Run Code Online (Sandbox Code Playgroud) 运行 Django 测试用例允许您像这样指定详细程度 (0,1,2,3)
manage.py test -v 2 myapp.tests.test_mycode.TestMyCode.test_func
Run Code Online (Sandbox Code Playgroud)
我怎样才能收到我的详细信息标志test_func
有什么区别
from package import x, y
Run Code Online (Sandbox Code Playgroud)
和
from package import (x, y)
Run Code Online (Sandbox Code Playgroud)
我在Django源代码中看到了这种用法,但找不到第二种方法的文档(使用导入的圆括号)
我有一个汽车零件数据库,包括品牌和非品牌商品.如果品牌名称不可用,full_name那就简单了Part.name,否则就是Brand.name + Part.name.
如何定义unique_together约束以确保full_name数据库级别的唯一性?目前的约束允许具有相同名称的多个部分,如果品牌名称缺失(即brand_id ForeignKey是NULL)
class Brand(models.Model):
name = models.CharField(max_length=100)
class Part(models.Model);
name = models.CharField(max_length=100)
brand = models.ForeignKey(Brand, null=True, blank=True)
def get_full_name(self):
if self.brand_id:
full_name = '%s %s'.format(self.brand.name, self.name)
else:
full_name = self.name
return full_name
class Meta:
unique_together = (('name', 'brand'),)
Run Code Online (Sandbox Code Playgroud)
使用:Django 1.6 + PostgreSQL 9.3
PS这里有一个很好的建议,用SQL实现这一点.我正在寻找使用Django ORM的解决方案./sf/answers/580247741/
我错误地在调试窗口中键入$('div:nth(1)')而不是$('div:eq(1)')在stackoverflow.com的主页上.结果是一样的.我知道nth-child与eq不同.但是'什么'是什么?我找不到它的文档.
我在chrome中加载了一个解压缩的扩展.该图标有一个不需要的黄色/橙色背景,它应该是透明的.如果我填充透明色,它仍然有黄色/橙色边框.这是Chrome中的新更新,表示解压扩展或是否表示存在安全问题?

我有一个mercurial存储库c:\Dropbox\code.我使用以下方法在本地创建了此repo的克隆:
hg clone -U c:\Dropbox\code c:\GoogleDrive\codeBackup
Run Code Online (Sandbox Code Playgroud)
这个裸仓库仅用于备份.我经常将更改推送到codeBackup.此外,这两个目录都在云中备份(分别是Dropbox和Google Drive).
如果我的repo code变得腐败,codeBackuprepo会自动损坏,因为克隆操作使用硬链接到原始repo?因此,我的双云备份策略将毫无用处?
PS:我知道回退选项是使用云服务来恢复以前已知的良好状态.
更新:在挖掘之后,我将添加这些作为参考
问题是,如果'hg clone'完成(没有--pull选项),那么目标和源repo通过使用硬链接1共享.hg/store内的文件,如果文件系统提供了硬链接功能(NTFS) .
Mercurial旨在打破.hg中的这些硬链接,如果对其中一个克隆进行提交或推送.前提条件是,如果mercurial询问"此文件中有多少个硬链接?",Windows API mercurial正在使用应该给出正确的答案.
我们发现这个答案几乎总是错误的(如果hg进程在一台Windows计算机上运行且存储库文件在另一台Windows计算机上的网络共享上,则总是报告1,即使它实际上> 1).
要避免硬链接(使用--pull):
hg clone -U --pull c:\Dropbox\code c:\GoogleDrive\codeBackup
要检查硬链接:
fsutil hardlink list <file> :显示所有硬链接 <file>
find . -links +1 :显示硬链接> 1的所有文件
ls -l :显示每个文件旁边的硬链接计数
我正在使用Django开发一个Web应用程序.当我运行命令时manage.py runserver,我可以访问该网站http://localhost (127.0.0.1:8000).如果我在进行开发时保持全天候运行,是否存在安全风险?我是否需要在路由器上阻止此端口,以便无法从外部访问它?
我想计算python中几个列表的平均值。这些列表包含数字作为字符串。空字符串不是零,它意味着缺少值。
我能想到的最好的就是这个。有没有更优雅,简洁和有效的方式来写这个?
num = ['1', '2', '', '6']
total = sum([int(n) if n else 0 for n in num])
length = sum([1 if n else 0 for n in num])
ave = float(total)/length if length > 0 else '-'
Run Code Online (Sandbox Code Playgroud)
PS 我正在使用 Python 2.7.x 但欢迎使用 Python 3.x 的食谱
我有一个数据库模型,如下所示.将数据视为2本不同的书籍,每本书都有3个评级.
class Book(models.Model):
name = models.CharField(max_length=50)
class Review(models.Model):
book = models.ForeignKey(Book)
review = models.CharField(max_length=1000)
rating = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
问题:是否可以使用单个查询对列表中的所有评级进行分组.我希望在数据库级别执行此操作,而无需在代码中迭代Queryset.输出应该类似于:
{
'book__name':'book1',
'rating' : [3, 4, 4],
'average' : 3.66,
'book__name':'book2',
'rating : [2, 1, 1] ,
'average' : 1.33
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个查询,但是按照书名分类的评分也不是,平均值也不正确:
Review.objects.annotate(average=Avg('rating')).values('book__name','rating','average')
Run Code Online (Sandbox Code Playgroud)
编辑:添加说明我正在寻找一种方法来在数据库级别对元素进行分组.