小编Ari*_*iel的帖子

如何阻止Chrome在复制/粘贴时将相对链接转换为绝对链接?

我复制从富文本divcontenteditable="true"并将其粘贴到一个中等草案.大多数格式保存得很好,但由于某种原因,我不明白所有相关链接都转换为绝对链接.我不知道这发生了什么步骤.我甚至认为Medium可以听"粘贴"事件.这将是最糟糕的情况,因为我几乎无法控制它.但如果是这样,他们如何访问我复制内容时的页面网址?事实上,在与其他浏览器核实后,我认为这是Chrome的错,而不是中等.在Safari上它完美运行,在Firefox上根本不起作用(但这是另一个问题的话题......).

为了使事情更清楚,我试图通过编写一个基本相同的书签来模仿我在Wordpress博客上使用的脚注插件的行为.

这是一个演示页面,您可以使用类似wiki的语法粘贴文本以进行内联引用,并将它们解析为适当的脚注:

https://rawgit.com/arielpontes/footnoter/master/index.html

在两种使用模式中([1]复制/粘贴到演示页面或[2]使用书签),生成的html具有适当的相对链接.然而,在Chrome浏览器上重新回到Medium后,它们变得绝对,指向rawgit.com并破坏了功能.

但是,如果我从本地计算机上运行代码而不是rawgit.com,那么即使在Chrome上粘贴,链接也会保持相对形式.

可能会发生什么?有没有办法解决它?

javascript jquery google-chrome copy-paste bookmarklet

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

使用 pip install 安装软件包后是否可以更新 Pipfile?

我刚刚使用创建了一个 pipelinev 环境pipenv --python 3.9。然后我pipenv shell开始安装软件包pip install。事实证明,这似乎不是使用 Pipenv 的常用方法。我可以运行任何命令来使用我安装的所有软件包更新 Pipfile 吗pip install?我进行了搜索,但没有找到任何东西。

python pip virtual-environment pipenv

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

如何在docker-compose中更改默认的elasticsearch密码?

Elasticsearch的官方docker镜像文档提供了这个docker-compose.yml示例:

version: '2'
services:
  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
    container_name: elasticsearch1
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch1"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local

networks:
  esnet:
Run Code Online (Sandbox Code Playgroud)

但是,它没有解释如何自定义密码.它确实将我们引导到X-Pack文档页面,但我拒绝相信我只需更改密码就可以解决所有问题.是否有更简单,规范的方法为Docker Compose文件上的elasticsearch配置自定义密码?

elasticsearch docker docker-compose

9
推荐指数
1
解决办法
5537
查看次数

从 Django 的 ArrayAgg 中排除空值

我正在使用 Django 的 postgres 特定ArrayAgg聚合器。它工作正常,但是当列表为空时,我得到[None]而不是[]. 有没有办法过滤掉这些空值?我试图将过滤器参数传递给,ArrayAgg但没有用。这是我的设置的简化示例:

class Image(models.Model):
    # ...

class Reporter(models.Model):
    # ...

class Article(models.Model):
    reporter = models.ForeignKey(Reporter, related_name='articles')
    featured_image = models.ForeignKey(Image, related_name='articles')
    # ...
Run Code Online (Sandbox Code Playgroud)

然后,如果我进行此查询:

reporter = Reporter.objects.annotate(
    article_images=ArrayAgg('articles__featured_image'),
    distinct=True
).first()
Run Code Online (Sandbox Code Playgroud)

结果集中的第一个记者没有任何相关文章,我得到:

> reporter.article_images
[None]
Run Code Online (Sandbox Code Playgroud)

我试图添加一个过滤器,但没有运气:

Reporter.objects.annotate(
    article_images=ArrayAgg(
        'articles__featured_image',
        filter=Q(articles__featured_image__isnull=False)
    )
)
Run Code Online (Sandbox Code Playgroud)

django postgresql django-aggregation django-postgresql django-annotate

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

如何在FastAPI中上传文件,然后上传到Amazon S3并最终处理它?

我有一个 FastAPI 端点,它接收文件,将其上传到 s3,然后对其进行处理。除了处理失败外,一切正常,并显示以下消息:

  File "/usr/local/lib/python3.9/site-packages/starlette/datastructures.py", line 441, in read
    return self.file.read(size)
  File "/usr/local/lib/python3.9/tempfile.py", line 735, in read
    return self._file.read(*args)
ValueError: I/O operation on closed file.
Run Code Online (Sandbox Code Playgroud)

我的简化代码如下所示:

async def process(file: UploadFile):
    reader = csv.reader(iterdecode(file.file.read(), "utf-8"), dialect="excel")  # This fails!
    datarows = []
    for row in reader:
        datarows.append(row)
    return datarows
Run Code Online (Sandbox Code Playgroud)

如何读取上传文件的内容?

更新

我设法进一步隔离问题。这是我的简化端点:

import boto3
from loguru import logger
from botocore.exceptions import ClientError


UPLOAD = True

@router.post("/")
async def upload(file: UploadFile = File(...)):
    if UPLOAD:
        # Upload the file
        s3_client = …
Run Code Online (Sandbox Code Playgroud)

python file amazon-s3 boto3 fastapi

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

如何在异步 FastAPI 测试中使用 PostgreSQL 测试数据库?

我正在开发一个异步 FastAPI 项目,我想在测试期间连接到数据库。来自 Django,我的本能是创建 pytest 固定装置来负责创建/删除测试数据库。但是,我找不到太多关于如何执行此操作的文档。我能找到的最完整的说明在本教程中,但它们对我不起作用,因为它们都是同步的。我对异步开发有点陌生,所以我在调整代码以异步工作时遇到了困难。这是我到目前为止所拥有的:

import pytest
from sqlalchemy.ext.asyncio import create_async_engine, session
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy_utils import database_exists, create_database

from fastapi.testclient import TestClient

from app.core.db import get_session
from app.main import app


Base = declarative_base()


@pytest.fixture(scope="session")
def db_engine():
    default_db = (
        "postgresql+asyncpg://postgres:postgres@postgres:5432/postgres"
    )
    test_db = "postgresql+asyncpg://postgres:postgres@postgres:5432/test"
    engine = create_async_engine(default_db)
    if not database_exists(test_db):  # <- Getting error on this line
        create_database(test_db)

    Base.metadata.create_all(bind=engine)
    yield engine


@pytest.fixture(scope="function")
def db(db_engine):
    connection = db_engine.connect()

    # begin a …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy pytest fastapi

7
推荐指数
1
解决办法
5176
查看次数

如何查看导致Django迁移错误的SQL查询?

我正在尝试运行数据迁移,删除表中的所有行(比方说MyModel).还有另一个表指向该表(RelatedModel).RelatedModel映射到的字段MyModelon_delete=models.SET_NULL.但是,当我运行迁移时,我得到:

  File "/usr/local/lib/python2.7/site-packages/django/db/backends/base/base.py", line 211, in _commit
    return self.connection.commit()
IntegrityError: update or delete on table "MyModel" violates foreign key constraint "f2274d6f2be82bbff458f3e5487b1864" on table "RelatedModel"
DETAIL:  Key (uuid)=(ywKMUYx7G2RoK9vqqEWZPV) is still referenced from table "RelatedModel".
Run Code Online (Sandbox Code Playgroud)

我在迁移中添加了一个断点并检查了SQL DELETE查询.我在shell中以交互方式运行它们并且它们在事务内部工作,但是当它尝试提交时,迁移仍然会中断.我无法看到哪个查询确切导致此错误,所以我不知道如何调试它.有什么建议?谢谢.

PS:我正在使用Django 1.9.13,Python 2.7,PostgreSQL 10.4.

django postgresql django-migrations

6
推荐指数
2
解决办法
326
查看次数

如何避免Django Forms和Django Rest Framework Serializers中的代码重复?

我正在研究一个必须暴露传统HTML前端和JSON API的Django 1.8项目.对于API,我们使用Django Rest Framework.在使用Rails之后,我尝试遵循"Fat Models"模式,并在模型中尽可能多地进行验证并远离表单.但是,有时候,必须在表单级别进行自定义验证.

示例:我有一个Image具有GenericForeignKey字段的模型,可能与系统中的任何模型相关.这些图像也有profile(例如"徽标","横幅"等).根据配置文件,我需要进行不同的验证.原则上我只是为不同的配置文件创建不同的表单类,但也可以通过API将图像分配给对象.如何避免在Forms和Serializers中重复此自定义验证?

django django-forms django-rest-framework

5
推荐指数
1
解决办法
535
查看次数

无法让 Django REST Swagger 与路由器一起使用

我有一个 Django REST Framework 项目,我正在尝试生成 Swagger 文档。然而,在我的 URL 文件中,我使用了路由器,但这似乎与 Swagger 配合得不太好。我按照本次讨论中的说明进行操作,这就是我得到的结果:

这很完美:

router = CustomRouter(
    schema_title='My API',
    schema_renderers=[renderers.CoreJSONRenderer, OpenAPIRenderer],
    trailing_slash=False
)
router.register(r'users', UserViewSet, base_name='user')
router.register(r'foos', FooFieldViewSet)
router.register(r'bars', BarViewSet)

urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^session-auth/', include('rest_framework.urls')),
    url(r'^rest-auth/', include('rest_auth.urls')),
]
Run Code Online (Sandbox Code Playgroud)

我得到了预期的页面:

预期页面

但是,如果我添加SwaggerUIRendererschema_renderers列表中,它就不再起作用:

router = CustomRouter(
    schema_title='My API',
    schema_renderers=[renderers.CoreJSONRenderer, OpenAPIRenderer, SwaggerUIRenderer],
    trailing_slash=False
)
# ...
Run Code Online (Sandbox Code Playgroud)

我得到这个页面:

您没有执行此操作的权限

我究竟做错了什么??

更新

如果我添加?format=swagger,我会得到:

/home/vagrant/ve/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango110Warning: django.core.context_processors is deprecated in favor of django.template.context_processors.
  return f(*args, **kwds)

[22/Jul/2016 09:00:10] …
Run Code Online (Sandbox Code Playgroud)

django swagger django-rest-framework

5
推荐指数
1
解决办法
2354
查看次数

将ThreadPoolExecutor与Django一起使用时,数据库“正在被其他用户访问”错误

我正在研究一个项目,在该项目中,我们分析了一个较大的文件并异步处理每一行(我们对每一行进行API调用)ThreadPoolExecutor。过去这是同步完成的,我们有一个通过测试套件。现在,但是,当运行测试时,Django的默认测试运行器错误出现在teardown_databases

Traceback (most recent call last):
  File "manage.py", line 34, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.5/site-packages/django/core/management/commands/test.py", line 29, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 294, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 345, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.5/site-packages/django/core/management/commands/test.py", line 72, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/local/lib/python3.5/site-packages/django/test/runner.py", line 551, in run_tests
    self.teardown_databases(old_config)
  File "/usr/local/lib/python3.5/site-packages/django/test/runner.py", line 526, in teardown_databases
    connection.creation.destroy_test_db(old_name, …
Run Code Online (Sandbox Code Playgroud)

python django postgresql multithreading

5
推荐指数
3
解决办法
1927
查看次数