小编Ald*_*und的帖子

reportlab中的多行(段落)页脚和标题

在reportlab中有一个页脚和页眉的最佳方法是什么,而不仅仅是一行,可以在onPage函数中使用canvas.drawString绘制.没有找到一种方法将类似Paragraph的东西放入onPage函数的页眉/页脚中.处理这个问题的最佳方法是什么?有没有办法将段落放入页脚?

python pdf pdf-generation reportlab

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

具有继承模型的ModelForm的表单字段

我有一个抽象模型,定义了一些字段,以及从中继承的其他模型.如果我为这个模型定义一个表单,基本字段没有定义,我不能在表单中使用它.

如果我用字段指定它我会收到此错误:

例外值:为经销商指定的未知字段(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

django django-models django-forms

13
推荐指数
1
解决办法
5227
查看次数

Scrapy蜘蛛内存泄漏

我的蜘蛛有一个严重的内存泄漏..运行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.

运行一段时间后最旧请求的对象

在此输入图像描述

python memory-leaks scrapy scrapyd

13
推荐指数
1
解决办法
1402
查看次数

注册时出错:NoCredentialProviders:链ECS代理错误中没有有效的提供者

我试图使用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.

amazon-ec2 amazon-web-services amazon-ecs ec2-ami terraform

13
推荐指数
1
解决办法
5986
查看次数

ng:测试没有找到getTestability元素参数的注入器

还有其他问题在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)

javascript angularjs protractor

12
推荐指数
1
解决办法
2072
查看次数

celerybeat会自动禁用定期任务

我想使用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)

django celery django-celery celeryd

11
推荐指数
2
解决办法
3695
查看次数

'NoneType'对象在scrapy\twisted\openssl中没有属性'_app_data'

在使用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)

python openssl twisted pyopenssl scrapy

10
推荐指数
2
解决办法
2707
查看次数

DRF - 为当前用户创建资源别名/我

如何创建一个资源,其中/ user/me url端点将指向当前用户并且行为与/ user/<userid>完全相同(例如,对/ user/me执行的所有post,put,delete请求应该以相同的方式工作as/user/<userid>).我看到有一个@detail_route装饰器用于自定义路由,但似乎在其中我将需要在那里复制代码,对于每个单独的请求方法,这似乎不是一个好的选择.我只需要为当前用户创建一个别名.我在谈论ModelViewSet

python django django-rest-framework

8
推荐指数
1
解决办法
577
查看次数

Postegresql在Windows上缓慢连接时间

我注意到与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)

windows postgresql psycopg2

7
推荐指数
0
解决办法
409
查看次数

MySql very slow count on query with joins

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)

mysql sql query-optimization

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