在reportlab中有一个页脚和页眉的最佳方法是什么,而不仅仅是一行,可以在onPage函数中使用canvas.drawString绘制.没有找到一种方法将类似Paragraph的东西放入onPage函数的页眉/页脚中.处理这个问题的最佳方法是什么?有没有办法将段落放入页脚?
我有一个抽象模型,定义了一些字段,以及从中继承的其他模型.如果我为这个模型定义一个表单,基本字段没有定义,我不能在表单中使用它.
如果我用字段指定它我会收到此错误:
例外值:为经销商指定的未知字段(created_at,updated_at)
异常位置:C:\ Python27\lib\site-packages\django\forms\models.py in new,line 215
这是我的代码:
class BaseModel(models.Model):
created_at = models.DateTimeField(default=datetime.now, editable=False)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Reseller(BaseModel): name = models.CharField(_("name"), max_length=255, unique=True)
class ResellerForm(forms.ModelForm): class Meta: model = Reseller fields = ('name','created_at','updated_at') Run Code Online (Sandbox Code Playgroud)
UPD
它可以通过这三个类清晰地重现新的空项目.它在表单导入失败
from jjj.forms import ResellerForm Traceback (most recent call last): File "", line 1, in File "C:\Users\ShapeR\PycharmProjects\djt\jjj\forms.py", line 4, in class ResellerForm(forms.ModelForm): File "C:\Python27\lib\site-packages\django\forms\models.py", line 214, in __new__ raise FieldError(message) FieldError: Unknown field(s) (created_at, updated_at) specified for Reseller
我的蜘蛛有一个严重的内存泄漏..运行15分钟后,它的内存5gb和scrapy告诉(使用prefs())有900k请求对象,那就是全部.这么多生活请求对象的原因是什么?请求只会上升并且不会下降.所有其他对象都接近于零.
我的蜘蛛看起来像这样:
class ExternalLinkSpider(CrawlSpider):
name = 'external_link_spider'
allowed_domains = ['']
start_urls = ['']
rules = (Rule(LxmlLinkExtractor(allow=()), callback='parse_obj', follow=True),)
def parse_obj(self, response):
if not isinstance(response, HtmlResponse):
return
for link in LxmlLinkExtractor(allow=(), deny=self.allowed_domains).extract_links(response):
if not link.nofollow:
yield LinkCrawlItem(domain=link.url)
Run Code Online (Sandbox Code Playgroud)
这里输出prefs()
HtmlResponse 2 oldest: 0s ago
ExternalLinkSpider 1 oldest: 3285s ago
LinkCrawlItem 2 oldest: 0s ago
Request 1663405 oldest: 3284s ago
Run Code Online (Sandbox Code Playgroud)
在一些网站上,100k页面的内存可以达到40gb标记(例如,在victorinox.com上,在100k页面标记处达到35gb内存).在其他它更小.
UPD.
我试图使用EC2容器服务.我正在使用terraform来创建它.我已经定义了ecs集群,自动缩放组,启动配置.一切似乎都有效.除了一件事.ec2实例正在创建,但它们没有在集群中注册,集群只是说没有实例可用.
在ecs agent登录创建的实例中,我发现日志充斥着一个错误:
注册时出错:NoCredentialProviders:链中没有有效的提供者
使用适当的角色ecs_role创建ec2实例.此角色有两个策略,其中一个是跟随的,如需要的文档:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:CreateCluster",
"ecs:DeregisterContainerInstance",
"ecs:DiscoverPollEndpoint",
"ecs:Poll",
"ecs:RegisterContainerInstance",
"ecs:StartTelemetrySession",
"ecs:Submit*",
"ecs:StartTask"
],
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用ami ami-6ff4bd05.最新的terraform.
还有其他问题在SO上有同样的问题,但解决方案对我没有用.这是我的spec.js
describe('Protractor Demo App', function() {
it('should have a title', function() {
browser.driver.get('http://rent-front-static.s3-website-us-east-1.amazonaws.com/');
expect(browser.getTitle()).toEqual('How It Works');
});
});
Run Code Online (Sandbox Code Playgroud)
在这里我的conf.js
exports.config = {
framework: 'jasmine',
rootElement: 'body',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
}
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试运行我的测试我得到错误
Message:
Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
Stack:
Error: Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
at C:\Users\ShapeR\PycharmProjects\ratest\node_modules\jasminewd2\index.js:101:16
at Promise.invokeCallback_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:1329:14) …
Run Code Online (Sandbox Code Playgroud) 我想使用django-celery的管理界面为芹菜创建一个周期性任务.我有一个任务设置,在手动或脚本调用时运行良好.它只是通过celerybeat无效.根据调试日志,任务设置为enabled = False
首次检索,我想知道为什么.
添加周期性任务并[1, False]
作为位置参数传递时,任务会自动禁用,我看不到任何进一步的输出.如果在没有参数的情况下添加任务,则会执行任务,但会立即引发异常,因为我没有提供所需的参数(有意义).
有谁看到这里的问题是什么?
提前致谢.
这是提供参数后的输出:
[DEBUG/Beat] SELECT "djcelery_periodictask"."id", [...]
FROM "djcelery_periodictask"
WHERE "djcelery_periodictask"."enabled" = true ; args=(True,)
[DEBUG/Beat] SELECT "djcelery_intervalschedule"."id", [...]
FROM "djcelery_intervalschedule"
WHERE "djcelery_intervalschedule"."id" = 3 ; args=(3,)
[DEBUG/Beat] SELECT (1) AS "a"
FROM "djcelery_periodictask"
WHERE "djcelery_periodictask"."id" = 3 LIMIT 1; args=(3,)
[DEBUG/Beat] UPDATE "djcelery_periodictask"
SET "name" = E'<taskname>', "task" = E'<task.module.path>',
"interval_id" = 3, "crontab_id" = NULL,
"args" = E'[1, False,]', "kwargs" = E'{}', "queue" = NULL, …
Run Code Online (Sandbox Code Playgroud) 在使用scrapy的抓取过程中,我的日志中会不时出现一个错误.它似乎不在我的代码中的任何地方,看起来像twisted\openssl里面的东西.是什么原因造成了这个以及如何摆脱它?
Stacktrace在这里:
[Launcher,27487/stderr] Error during info_callback
Traceback (most recent call last):
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/twisted/protocols/tls.py", line 415, in dataReceived
self._write(bytes)
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/twisted/protocols/tls.py", line 554, in _write
sent = self._tlsConnection.send(toSend)
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/OpenSSL/SSL.py", line 1270, in send
result = _lib.SSL_write(self._ssl, buf, len(buf))
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/OpenSSL/SSL.py", line 926, in wrapper
callback(Connection._reverse_mapping[ssl], where, return_code)
--- <exception caught here> ---
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/twisted/internet/_sslverify.py", line 1055, in infoCallback
return wrapped(connection, where, ret)
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/twisted/internet/_sslverify.py", line 1157, in _identityVerifyingInfoCallback
transport = connection.get_app_data()
File "/opt/webapps/link_crawler/lib/python2.7/site-packages/OpenSSL/SSL.py", line 1589, in get_app_data
return self._app_data
File …
Run Code Online (Sandbox Code Playgroud) 如何创建一个资源,其中/ user/me url端点将指向当前用户并且行为与/ user/<userid>完全相同(例如,对/ user/me执行的所有post,put,delete请求应该以相同的方式工作as/user/<userid>).我看到有一个@detail_route装饰器用于自定义路由,但似乎在其中我将需要在那里复制代码,对于每个单独的请求方法,这似乎不是一个好的选择.我只需要为当前用户创建一个别名.我在谈论ModelViewSet
我注意到与PostgreSQL的连接非常慢.
import psycopg2
import time
start_time = time.time()
try:
db = psycopg2.connect("dbname='xx' user='xxx' host='127.0.0.1' password='xxx' port='5433'")
except Exception as e:
print(e)
exit(1)
print('connect time', time.time() - start_time)
Run Code Online (Sandbox Code Playgroud)
通常的连接时间为2.5-3.5秒.连接时间3.3095390796661377
它几乎是新安装的PostgreSQL的默认配置.我关闭了log_hostname但它没有改变任何东西.我已经运行了PostgreSQL 9.4和10,两者都有同样的问题.我正在使用这台机器进行开发,但即便如此,我注意到它,因为我的Django请求需要2.5-3.5秒,这使得即使对于开发也难以忍受.
Windows 10 Python 2/3 psycopg2 2.7.4
这里有来自PostgreSQL的max debug的相关日志
2018-03-19 21:24:43.654 +03 [10048] DEBUG: 00000: forked new backend, pid=21268 socket=5072
2018-03-19 21:24:43.654 +03 [10048] LOCATION: BackendStartup, postmaster.c:4099
2018-03-19 21:24:45.248 +03 [21268] LOG: 00000: connection received: host=127.0.0.1 port=9897
Run Code Online (Sandbox Code Playgroud)
它分叉新的后端,然后仅2秒后收到日志连接
UPD
即使我设法避免PostgreSQL的连接延迟(例如通过pgbouncer,或者如果PostgreSQL在docker中运行)请求仍然需要1.3-2秒,但从第一个发送包到最后只有0.022秒,所有其他时间idk发生了什么但是不是客户端和服务器之间的网络通信.如果在docker中运行相同的代码 - 0.025秒.从Windows - 1.3-2秒但网络交互只有0.022秒
实际上有两个问题可能是由同一件事或不同引起的,不知道.
1)由于未知原因,Postgresql没有发送数据包1.8秒
2)即使第一个问题被消除,网络交互下降到0.022秒,整个事情仍需要1.3-2秒(使用psql或psycopg2)
I have a view for mysql :
CREATE VIEW
loggingquarantine_quarantine ( id, mail_id, partition_tag, content, rs, subject, sender, TIME,
spam_level, size, sid, email ) AS
SELECT
concat(CAST(`mr`.`mail_id` AS CHAR(255) charset utf8),CAST(`mr`.`partition_tag` AS CHAR(255)
charset utf8)) AS `id`,
`mr`.`mail_id` AS `mail_id`,
`mr`.`partition_tag` AS `partition_tag`,
`mr`.`content` AS `content`,
`mr`.`rs` AS `rs`,
`m`.`subject` AS `subject`,
`m`.`from_addr` AS `sender`,
`m`.`time_num` AS `TIME`,
`m`.`spam_level` AS `spam_level`,
`m`.`size` AS `size`,
`m`.`sid` AS `sid`,
`maddr`.`email` AS `email`
FROM
(((`msgrcpt` `mr` JOIN `msgs` `m`
ON
(
`m`.`partition_tag` = …
Run Code Online (Sandbox Code Playgroud) python ×4
django ×3
scrapy ×2
amazon-ec2 ×1
amazon-ecs ×1
angularjs ×1
celery ×1
celeryd ×1
django-forms ×1
ec2-ami ×1
javascript ×1
memory-leaks ×1
mysql ×1
openssl ×1
pdf ×1
postgresql ×1
protractor ×1
psycopg2 ×1
pyopenssl ×1
reportlab ×1
scrapyd ×1
sql ×1
terraform ×1
twisted ×1
windows ×1