在一个基础我有下一个过程.
import csv
reader = csv.reader(open('huge_file.csv', 'rb'))
for line in reader:
process_line(line)
Run Code Online (Sandbox Code Playgroud)
看到这个相关的问题.我想每100行发送一次生产线,以实现批量分片.
实现相关答案的问题是csv对象是不可取消的,不能使用len.
>>> import csv
>>> reader = csv.reader(open('dataimport/tests/financial_sample.csv', 'rb'))
>>> len(reader)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type '_csv.reader' has no len()
>>> reader[10:]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '_csv.reader' object is unsubscriptable
>>> reader[10]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '_csv.reader' object is …
Run Code Online (Sandbox Code Playgroud) 我想在启动django命令之前运行命令.
例如:
$ python manage.py runserver
Validating models...
0 errors found
Django version 1.3, using settings 'creat1va.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
(started some command in the background)
[10/Jul/2011 21:50:26] "GET / HTTP/1.1" 200 1611
[10/Jul/2011 21:50:26] "GET /assets/css/master.css HTTP/1.1" 404 1783
[10/Jul/2011 21:50:26] "GET /assets/images/misc/logo.png HTTP/1.1" 404 1801
[10/Jul/2011 21:50:26] "GET /assets/images/icons/bo.gif HTTP/1.1" 404 1798
[10/Jul/2011 21:50:28] (My background process) "Some nice Feedback"
Run Code Online (Sandbox Code Playgroud)
主要思想是启动后台进程,并输出日志记录.
有没有办法实现这一点,没有黑客django来源?
对我来说,这是一个非常标准的设置,我有一台ubuntu机器运行docker和ufw作为我的防火墙.
如果我的防火墙启用,则docker实例无法连接到外部
$ docker run -i -t ubuntu /bin/bash
WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4]
root@d300c5f17207:/# apt-get update
Err http://archive.ubuntu.com precise InRelease
0% [Connecting to archive.ubuntu.com]
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/precise/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/precise/Release.gpg Temporary failure resolving 'archive.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Run Code Online (Sandbox Code Playgroud)
这是ufw日志,显示来自docker容器的阻塞连接.
$ sudo tail /var/log/ufw.log
Jun 30 15:41:56 localhost kernel: [61609.503199] [UFW BLOCK] IN=testbr0 OUT=eth0 PHYSIN=veth8Rj8Nh …
Run Code Online (Sandbox Code Playgroud) 给这本词典:
>>> options = {'DATABASES': {'default': {'ENGINE': 'django.db.backends.sqlite3'}}}
Run Code Online (Sandbox Code Playgroud)
得到这个最好的方法是什么?:
>>> foo(options)
>>> print DATABASES
{'default': {'ENGINE': 'django.db.backends.sqlite3'}}
Run Code Online (Sandbox Code Playgroud)
我解决这个问题是本地人().更新(选项),但我在想,如果有更好的解决方案.
我在裸存储库中有/ hooks/post-update这个简单的钩子:
#!/bin/sh
git-update-server-info
GIT_WORK_TREE=/home/user/apps/application-site/dev git checkout -f develop
GIT_WORK_TREE=/home/user/apps/application-site/dev git submodule update --init
GIT_WORK_TREE=/home/user/apps/application-site/master git checkout -f master
GIT_WORK_TREE=/home/user/apps/application-site/master git submodule update --init
Run Code Online (Sandbox Code Playgroud)
存储库有一些子模块,我期望将其推送到生产服务器,并检查两个目录上的两个分支,因此我可以在以后有一个dev.myapp.com用于开发分支,www.myapp.com用于主分支,所有这些也更新了分支上的子模块.
Checkout按预期工作,但不是子模块更新--init,:'(
远程输出会引发此错误.
remote: Switched to branch 'develop'
remote: You need to run this command from the toplevel of the working tree.
remote: Switched to branch 'master'
remote: You need to run this command from the toplevel of the working tree.
Run Code Online (Sandbox Code Playgroud)
我不太清楚该怎么做.
我在trunk上使用django 1.3,并开始学习类视图.
我有这个:
class Project(models.Model):
title = models.CharField(max_length=90)
slug = models.CharField(max_length=90)
description = models.TextField()
owner = models.ForeignKey(User)
class ProjectForm(ModelForm):
class Meta:
model = Project
exclude = ('owner',)
widgets = {
'description': Textarea(attrs={'cols': 40, 'rows': 20}),
}
class ProjectCreateView(CreateView):
model = Project
form_class = ProjectForm
def get(self, request, *args, **kwargs):
return super(ProjectCreateView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return super(ProjectCreateView, self).post(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用django中的模型表单(不包括所有者字段)获取表单,以获取request.user属性之后的字段值.
形式原样,有效.但是如何确保ModelForm使用request.owner字段的request.user?
我的第一个猜测是从视图中覆盖get_form_kwargs方法
class ProjectCreateView(CreateView):
# .....
def get_form_kwargs(self, **kwargs):
self.initial['owner': self.request.user})
kwargs = super(ProjectCreateView, self).get_form_kwargs(**kwargs) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Google App Engine 队列 API,但在测试时遇到问题。似乎在流程的某些部分,CSRF 不起作用。
据我了解,api 在后台执行调用 url 和发出 http 请求的任务。
API调用的完整网址是?http://localhost.localdomain:8000/admin/cooking/recipe/36/chefworker/
当它引发此异常时:
Traceback (most recent call last):
File "/home/mariocesar/Proyectos/Cooking/cooking/django/core/handlers/base.py", line 100, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/mariocesar/Proyectos/Cooking/cooking/django/views/decorators/csrf.py", line 24, in wrapped_view
resp.csrf_exempt = True
AttributeError: 'NoneType' object has no attribute 'csrf_exempt'
Run Code Online (Sandbox Code Playgroud)
因此,GAE api 为在后台执行任务而发出的请求中缺少 csrf 中间件、cookie、某些数据或响应本身。
如何在不禁用 Django 上的 CSRF 的情况下解决这个问题?但是,它完全可以与 djangoappengine 一起使用吗?
下面是我正在使用的 models.py 和 admin.py 文件。
模型.py
from django.db import models
class Recipe(models.Model):
name = models.CharField(max_length=140)
description = models.TextField()
cooking_time = …
Run Code Online (Sandbox Code Playgroud) 我有这个数组:
>>> print raw_data
['LEVEL 1',
'SUBJECT A',
'GROUP X',
'COMMENT i',
'COMMENT ii',
'COMMENT iii',
'GROUP Y',
'COMMENT iv',
'COMMENT v',
'COMMENT vi',
'LEVEL 2',
'SUBJECT B',
'GROUP Z',
'COMMENT vii',
'COMMENT viii',
'COMMENT ix',
'SUBJECT C',
'GROUP X2',
'COMMENT x',
'COMMENT xi',
'COMMENT xii',
'COMMENT xiii',
'GROUP Y2',
'COMMENT xiv',
'COMMENT xv',
'COMMENT xvi']
Run Code Online (Sandbox Code Playgroud)
明显的层次结构是:
我的目标是将数组作为非规范化数组存储在数据库中:
>>> print result
[
['LEVEL 1', 'SUBJECT A', 'GROUP X', 'COMMENT i'],
['LEVEL 1', 'SUBJECT A', 'GROUP X', …
Run Code Online (Sandbox Code Playgroud)