我正在尝试在Python中使用Chromium cookie,因为Chromium使用AES(使用CBC)对其cookie进行加密,我需要对此进行反转.
我可以从OS X的Keychain中恢复AES密钥(它存储在Base 64中):
security find-generic-password -w -a Chrome -s Chrome Safe Storage
# From Python:
python -c 'from subprocess import PIPE, Popen; print(Popen(['security', 'find-generic-password', '-w', '-a', 'Chrome', '-s', 'Chrome Safe Storage'], stdout=PIPE).stdout.read().strip())'
Run Code Online (Sandbox Code Playgroud)
这是我的代码,我所缺少的是解密cookie:
from subprocess import PIPE, Popen
from sqlite3 import dbapi2
def get_encryption_key():
cmd = ['security', 'find-generic-password', '-w', '-a', 'Chrome', '-s', 'Chrome Safe Storage']
return Popen(cmd, stdout=PIPE).stdout.read().strip().decode('base-64')
def get_cookies(database):
key = get_encryption_key()
with dbapi2.connect(database) as conn:
conn.rollback()
rows = conn.cursor().execute('SELECT name, encrypted_value FROM cookies WHERE host_key like …
Run Code Online (Sandbox Code Playgroud) 我有一个内联formset,我想排除一些模型对象在formset中显示.
例如.模型B具有模型A的外键,因此它是1:n(一个对象有很多B对象)的关系.现在在一个管理编辑页面上,我有了B的内联.我想知道是否有可能以某种方式在呈现内联formset之前过滤B对象列表,因此并非所有与B对象相关的A都会进入formset.
我有订单和发货模型.装运有订购的外键.
class Order(...):
...
class Shipment()
order = m.ForeignKey('Order')
...
Run Code Online (Sandbox Code Playgroud)
现在,在我的一个视图中,我想删除订单对象以及所有相关对象.所以我调用order.delete().
我有Django 1.0.4,PostgreSQL 8.4和我使用事务中间件,所以整个请求都包含在单个事务中.
问题是在order.delete()上我得到:
...
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", line 28, in _commit
return self.connection.commit()
IntegrityError: update or delete on table "main_order" violates
foreign key constraint "main_shipment_order_id_fkey" on table "main_shipment"
DETAIL: Key (id)=(45) is still referenced from table "main_shipment".
Run Code Online (Sandbox Code Playgroud)
我在connection.queries中检查了正确的查询以正确的顺序执行.首先发货被删除,之后django在订单行上执行删除:
{'time': '0.000', 'sql': 'DELETE FROM "main_shipment" WHERE "id" IN (17)'},
{'time': '0.000', 'sql': 'DELETE FROM "main_order" WHERE "id" IN (45)'}
Run Code Online (Sandbox Code Playgroud)
外键具有ON DELETE NO ACTION(默认值)并且最初是延迟的.我不知道为什么我会得到外键约束违规.
我还尝试注册pre_delete信号并在调用订单删除之前手动删除货件对象,但是它导致了同样的错误.
我可以在Postgres中更改此键的ON DELETE行为,但这只是一个黑客,我想知道是否有人更好地了解这里发生了什么.
还有一个小细节,我的订单模式从车模型继承,所以它实际上没有id字段,但cart_ptr_id和顺序执行这里还删除车后删除,但似乎不相关?发货 - >订单问题,所以我在示例中简化了它.
我正在使用ImageMagick的复合命令将一个较小的图像组合成一个较大的图像.生成的图像应该是背景图像的大小(较大的图像).此外,我希望较小的一个总是相同的大小.
目前我有这么简单的调用:
composite -gravity SouthWest watermark.png photo.jpg photo.jpg
Run Code Online (Sandbox Code Playgroud)
问题是我为不同的照片获得了不同大小的水印,我不知道如何将其设置为固定大小.我试过-resize,-geometry和-size选项但是所有这些都改变了结果图像的大小而不是水印.
django ×2
c++ ×1
chromium ×1
composite ×1
cookies ×1
database ×1
django-admin ×1
django-forms ×1
imagemagick ×1
postgresql ×1
python ×1
resize ×1
sql ×1
watermark ×1