在Python 2.6中从迭代器获取最后一项的最佳方法是什么?例如,说
my_iter = iter(range(5))
Run Code Online (Sandbox Code Playgroud)
什么是最短的代码/最干净的方式4
来自my_iter
?
我可以做到这一点,但它看起来效率不高:
[x for x in my_iter][-1]
Run Code Online (Sandbox Code Playgroud) 我尝试在gallio-users列表中询问此问题,但问题未能出现(Google Groups称帖子成功).我想这个列表可能会被那些不经常阅读他的电子邮件的人主持:-)看到SO有Gallio和MbUnit的标签,我认为这里值得一提.
我看到MbUnit
头版提到他们热衷于维护Mono兼容性.还有一个> 1年的关于gallio用户的帖子说它在Linux下不起作用
如果删除Parallelizable
属性,我想测试的项目在Mono下编译得很好.我可以Gallio
在Linux下启动控制面板,但不能启动Icarus或Echo.
有没有办法MbUnit
在Linux下运行测试?使用命令行(如Gallio.Echo
)并且不需要Monodevelop的东西会特别有用.
我正在努力绕过Django的ORM.我想要做的是在我的表格中的字段中获取不同值的列表....相当于以下之一:
SELECT DISTINCT myfieldname FROM mytable
Run Code Online (Sandbox Code Playgroud)
(或者)
SELECT myfieldname FROM mytable GROUP BY myfieldname
Run Code Online (Sandbox Code Playgroud)
在使用原始sql之前,我至少喜欢用Django方式做.例如,使用表格:
id,街道,城市
1,赫尔大街
2,其他街,赫尔
3,Bibble Way,莱斯特
4,另一种方式,莱斯特
5,高街,Londidium
我想得到:
船体,莱斯特,Londidium.
我很好奇是否有任何方法可以在Django中进行查询而不是SELECT * FROM...
"下面的".我正在尝试做一个" SELECT DISTINCT columnName FROM ...
".
具体来说,我有一个模型,看起来像:
class ProductOrder(models.Model):
Product = models.CharField(max_length=20, promary_key=True)
Category = models.CharField(max_length=30)
Rank = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
其中Rank
是一个排名Category
.我希望能够遍历所有类别,对该类别中的每个等级进行一些操作.
我想首先获得系统中所有类别的列表,然后查询该类别中的所有产品并重复,直到处理完每个类别.
我宁愿避免使用原始SQL,但如果我必须去那里,那就没事了.虽然我以前从来没有在Django/Python中编写原始SQL.
我希望能够创建一个类(在Python中),一旦初始化__init__
,不接受新属性,但接受现有属性的修改.我可以看到有几种黑客方法可以做到这一点,例如有一个__setattr__
方法,比如
def __setattr__(self, attribute, value):
if not attribute in self.__dict__:
print "Cannot set %s" % attribute
else:
self.__dict__[attribute] = value
Run Code Online (Sandbox Code Playgroud)
然后__dict__
直接在里面编辑__init__
,但我想知道是否有"正确"的方法来做到这一点?
我在MongoDB中存储了以下文档:
{
name: 'myDoc',
list: [
{
id:1
items:[
{id:1, name:'item1'},
{id:2, name:'item2'}
]
},
{
id:2
items:[
{id:1, name:'item1'},
{id:3, name:'item3'}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我找到了一种方法,可以使用"list"添加元素,$addToSet
但是找不到添加到项目的"项目"列表的方法.
例如,我得到以下内容:
{id:5, name:'item5'}
Run Code Online (Sandbox Code Playgroud)
我想将它添加到列表中元素的项目,ID为:2.
我从django 1.8迁移到1.9.我收到以下错误:
ImportError:无法导入名称'FileWrapper'
我导入如下:
from django.core.servers.basehttp import FileWrapper
Run Code Online (Sandbox Code Playgroud)
在django 1.9发行说明中搜索此名称不会产生任何结果.有什么替代品FileWrapper
?
我有一个可以在我的电脑上运行的Django站点,并在加载后在我的服务器上工作.我注意到我的服务器有Django 1.6,我升级到1.8.
重新启动后,我的网站上没有任何页面加载,我收到错误:
ImportError没有名为context_processors的模块
我阅读了关于Django和allauth的文档.Django中提到,在1.8 context_processors移动和allauth说具体allauth标签不再需要在TEMPLATE_CONTEXT_PROCESSORS
的settings.py
.
Django:https://docs.djangoproject.com/en/1.8/ref/settings/
Allauth:https://django-allauth.readthedocs.org/en/latest/installation.html
其他人遇到这个?我是在正确的轨道上吗?我需要在设置中更改某些内容吗?我无法确定它是否是Django或allauth问题所以不确定从哪里开始.
任何帮助表示赞赏!
追溯:
Django Version: 1.8.4
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'plant',
'journal',
'userimg',
'django.contrib.sites',
'allauth',
'allauth.account')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/django/django_project/plant/views.py" in plant_main
24. return render(request, 'plant/plant_main.html', context)
File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/shortcuts.py" in render
67. template_name, context, request=request, using=using)
File "/usr/local/lib/python2.7/dist-packages/Django-1.8.4-py2.7.egg/django/template/loader.py" …
Run Code Online (Sandbox Code Playgroud) 我无法在模板中显示缩略图.我收到此错误:
django.db.utils.ProgrammingError:(1146,"表'ia_website.thumbnail_kvstore'不存在")
这就是我做的
在settings.py中:
INSTALLED_APPS = [
...
'sorl.thumbnail',
]
THUMBNAIL_DEBUG = TRUE
Run Code Online (Sandbox Code Playgroud)在models.py中
import sorl
...
image = sorl.thumbnail.ImageField(upload_to='thumbnails', null=True)
Run Code Online (Sandbox Code Playgroud)在我的模板中
{% thumbnail content.image "237x110" as im %}
<img src="{{ im.url }}">
{% endthumbnail %}
Run Code Online (Sandbox Code Playgroud)我正在使用此代码 admin.py
from django.db.models import get_models, get_app
for model in get_models(get_app('myapp')):
admin.site.register(model)
Run Code Online (Sandbox Code Playgroud)
但我得到警告 get_models is deprecated
我怎么能在django 1.8中做到这一点
django ×6
python ×6
django-orm ×2
python-3.x ×2
class ×1
distinct ×1
django-1.8 ×1
f# ×1
gallio ×1
iterator ×1
mbunit ×1
mongodb ×1
mono ×1
oop ×1
python-2.7 ×1
ubuntu ×1