小编McA*_*bra的帖子

Docker-compose和pdb

我看到我不是第一个提出这个问题的人,但对此没有明确答案:

如何在Python开发中使用pdb和docker-composer?

当你问谷歌叔叔django docker你得到了很棒的docker-composer示例和教程,我有一个环境工作 - 我可以运行docker-compose up,我有一个整洁的开发人员环境,但PDB不工作(这是非常悲伤).

我可以运行定居docker-compose run my-awesome-app python app.py 0.0.0.0:8000,但后来我可以通过访问我的应用程序http://127.0.0.1:8000从主机(我可以带docker-compose up),似乎每次使用时间run新容器等制成的:dir_app_13dir_db_4我不欲望.

善意的人请帮助我.

PS
我正在使用pdb ++作为该示例,并使用此django示例中的基本docker-compose.yml .我也进行了实验,但似乎没有什么可以帮助我.我正在使用docker -composer 1.3.0rc3,因为它有Dockerfile指向支持.

python pdb docker docker-compose

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

如何在Django REST Framework中序列化"对象列表"

我需要一个类似这样的序列化器:

{
    "items": {
        12: {
            "name": "item 1"
        },
        66: {
            "name": "item 2"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该如何声明我的序列化器来获得这样的东西?这甚至是一个有效的JSON还是看起来像这样:

{
    "items": [
        {
            "name": "item 1",
            "id": 12
        }, {
            "name": "item 2"
            "id": 66
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

?(12,66是那些'项'的主键)使用Django REST Framework 3.

django json django-rest-framework

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

Python Cryptography 导出密钥到 DER

过去使用 PyCrypto 时,我能够执行以下操作来生成 RSA 公钥的指纹:

rsa_cipher = PKCS1_v1_5.new(RSA.importKey(pub_rsa_key))
hashlib.sha1(rsa_cipher._key.exportKey("DER")).hexdigest()
Run Code Online (Sandbox Code Playgroud)

如果没有 PyCrypto,我怎样才能达到同样的目的?


编辑

我提供的pub_rsa_key是一个.perm文件的内容,即:

-----BEGIN PUBLIC KEY-----
MII...AB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

PyCrypto 被认为是不安全的,不再维护,所以我切换到 Python 的密码学,但它似乎没有足够的功能。

  • 我在 Pythons Cryptography API 中是否遗漏了类似的功能?
  • PyCryptoDome 是否可能是 PyCrypto 用于实现此功能的值得(稳定且安全)的替代品?
  • 如果以上都没有,是否可以通过自写函数以 DER 格式导出该密钥?

执行导出的任何文档或搜索词都会有所帮助。


编辑 2
Maarten Bodewes 的评论(谢谢)把我带到了一个似乎是我正在寻找的地方。但是DER导出的结果不同:

# Python 3.7 using Cryptography
from cryptography.hazmat.primitives import serialization

with open('pub_key.perm', 'rb') as key_file: 
    public_key = serialization.load_pem_public_key(key_file.read(), backend=default_backend())

pub_der = public_key.public_bytes(encoding=serialization.Encoding.DER, format=serialization.PublicFormat.PKCS1)

print(sha1(pub_der).hexdigest())
# gives "d291c142648b7........c2f4676f4213203c4bd"
Run Code Online (Sandbox Code Playgroud)

在哪里

# Python 2.7 using PyCrypto
from Crypto.Cipher …
Run Code Online (Sandbox Code Playgroud)

python cryptography rsa pycrypto python-cryptography

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

Django 并发 get_or_create

我担心一件事。
使用 Django 1.7(大多数默认安装中的 MySQL)我正在向 Django REST Framework 发送 POST APIView。那边我在做:

try:
    MyModel.objects.get(**some_kwargs)
except MyModel.DoesNotExist:
    MyModel.objects.custom_create(**some_kwargs)  # This also creates relative models
Run Code Online (Sandbox Code Playgroud)

现在,如果我要执行大量并发请求,会发生什么?
正如我猜你所期望的,我只想要第一个并发请求来创建一个对象,其他任何请求都应该得到创建的对象。

感谢 Django,我准备好了吗?必须研究隔离、事务、原子性?或者更多的是关于锁定桌子?如何(单元)测试它?

请指导我。

python mysql django transactions atomicity

3
推荐指数
1
解决办法
1751
查看次数

Python在功能之间共享数据

我从Python Behave开始,因为我想做一个API测试的事情.
目前我偶然发现了一些可能甚至无效的问题,但问题是:我可以在功能之间共享数据吗?我可以在数据库或文件中存储一些,但也许有"内置"的东西?

或者这是无效的,我不应该分享这样的数据,或者可能在功能内部?

在实践中它看起来像:

我必须向端点发出请求,在响应中我得到一个需要进行另一个需要测试的请求的号码.

python bdd python-behave

0
推荐指数
1
解决办法
2347
查看次数