我复制从富文本div用contenteditable="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上粘贴,链接也会保持相对形式.
可能会发生什么?有没有办法解决它?
我刚刚使用创建了一个 pipelinev 环境pipenv --python 3.9。然后我pipenv shell开始安装软件包pip install。事实证明,这似乎不是使用 Pipenv 的常用方法。我可以运行任何命令来使用我安装的所有软件包更新 Pipfile 吗pip install?我进行了搜索,但没有找到任何东西。
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配置自定义密码?
我正在使用 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
我有一个 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) 我正在开发一个异步 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) 我正在尝试运行数据迁移,删除表中的所有行(比方说MyModel).还有另一个表指向该表(RelatedModel).RelatedModel映射到的字段MyModel有on_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.
我正在研究一个必须暴露传统HTML前端和JSON API的Django 1.8项目.对于API,我们使用Django Rest Framework.在使用Rails之后,我尝试遵循"Fat Models"模式,并在模型中尽可能多地进行验证并远离表单.但是,有时候,必须在表单级别进行自定义验证.
示例:我有一个Image具有GenericForeignKey字段的模型,可能与系统中的任何模型相关.这些图像也有profile(例如"徽标","横幅"等).根据配置文件,我需要进行不同的验证.原则上我只是为不同的配置文件创建不同的表单类,但也可以通过API将图像分配给对象.如何避免在Forms和Serializers中重复此自定义验证?
我有一个 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)
我得到了预期的页面:
但是,如果我添加SwaggerUIRenderer到schema_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) 我正在研究一个项目,在该项目中,我们分析了一个较大的文件并异步处理每一行(我们对每一行进行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) django ×5
postgresql ×4
python ×4
fastapi ×2
amazon-s3 ×1
bookmarklet ×1
boto3 ×1
copy-paste ×1
django-forms ×1
docker ×1
file ×1
javascript ×1
jquery ×1
pip ×1
pipenv ×1
pytest ×1
sqlalchemy ×1
swagger ×1