我正在使用HTTP Refresh标头提供占位符图像,如下所示:
Connection:keep-alive
Content-Type:image/gif
Date:Thu, 01 Aug 2013 14:16:25 GMT
Refresh:10; url=/media/thumbs/document/18.png
Server:nginx/1.4.1
Transfer-Encoding:chunked
Run Code Online (Sandbox Code Playgroud)
如果我在完整窗口中加载图像占位符URL,则内容会在10秒后刷新,但如果我在图像标记src属性中放置相同的URL ,则图像永远不会刷新(在Chrome和FF中测试).
我为什么要这样做?我有一个应用程序,其中文档的缩略图需要几秒钟由服务器生成(这是一个复杂的SVG渲染).当用户在创建新文档后立即转到文档列表时,缩略图可能还没有.我试图使用带有刷新标题的占位符图像在几秒钟后加载真实的缩略图.
我不记得是怎么回事,但是在Netscape浏览器过去的好时光,像刷新标题这样的东西有时我们是如何破解动画的(甚至在Flash之前 - 我是史前还是什么?).我们称之为"服务器推送"(我猜这个流行语是用Comet模型回收的).
我在客户端使用Angular.js(服务器端是Django + uWSGI + Nginx),所以使用javascript攻击东西应该很容易,但我很好奇:是否有任何技巧(没有javascript)图像标签在几秒钟后加载另一个源?
(我也会标记这个Django和Nginx,因为可能有人知道服务器端解决方案)
我正在运行一个脚本,它带有一个文本"rAh%19u ^ l \&G"即包含特殊字符.
当我在我的脚本中将此文本作为参数传递时,它运行正常,没有任何错误.
示例 - : ./abc.py <username><pwd>
以上文字基本上是一个密码.
现在,当我将我的值放在配置文件中并阅读上面的文本时,脚本失败了.
*******abc.ini*******
[DEFAULT]
username = rahul
pwd = rAh%19u^l\&G
Run Code Online (Sandbox Code Playgroud)
它说
/bin/sh:M command not found.
Run Code Online (Sandbox Code Playgroud)
在配置解析器的帮助下阅读上述值
******以下是程序abc.py******
#! /usr/bin/python
parser = configparser.ConfigParser()
parser.read('abc.ini')
username = parser.get('DEFAULT','username')
pwd = parser.get('DEFAULT','pwd')
p = subprocess.Popen(
"abc.py {0} {1}" .format(username, pwd),
shell=True,
stdout=subprocess.PIPE
)
out, err = p.communicate()
print(out)
Run Code Online (Sandbox Code Playgroud)
我试了很多,但没有找到具体的东西.
所以问题是如何读取包含.ini文件中特殊字符的文本.
我使用file.readlines进行了回答.评论家说使用readlines是废话代码(以及其他非常粗鲁的陈述).
这么糟糕吗?
我知道suds是为了客户端,但我也想用它来制作服务器站点,以摆脱ZSI.
我如何使用suds来解析soap请求而不是响应?
[更新]
强制论证在django形式中做了什么?我已经阅读了文档,但它不是很有用,所以用一些用例示例的一个很好的解释会有所帮助.引用文档:
一个函数,它接受一个参数并返回一个强制值.示例包括内置int,float,bool和其他类型.默认为标识功能.
将javascript库移植到Python时,我发现了以下代码:
return Math.atan2(
Math.sqrt(
(_ = cos?1 * sin??) * _ + (_ = cos?0 * sin?1 - sin?0 * cos?1 * cos??) * _
),
sin?0 * sin?1 + cos?0 * cos?1 * cos??
);
Run Code Online (Sandbox Code Playgroud)
我错了还是(_ = cos?1 * sin??) * _写得像Math.pow(cos?1 * sin??, 2)?
我想作者试图避免使用Math.pow,与临时分配相比,这在javascript中是否昂贵?
[更新]
截至2016年底,Chrome 53.0(64位)看起来差异并不像以前那么大.
在巴西,有一种称为 DNV 的表格(在葡萄牙语中的“Born Alive Declaration”之后)。我在一家巴西政府机构工作,该机构每年从全州每家医院收到超过 50 万份此类药物。
我正在尝试检测复选框字段上的标记。我从“性别”字段开始,其中包含 M(男性)、F(女性)或 I(忽略)的复选框。
我已经能够使用 OpenCV 自信地找到字段和复选框:
我猜有更多暗像素的复选框区域是被标记的区域,即使图像质量非常低,它也能在 99% 的时间内工作。
if sum(checkbox1) < sum(checkbox2):
return "M"
else:
return "F"
Run Code Online (Sandbox Code Playgroud)
有时这会失败:一个人会告诉“女性”复选框被标记,但由于sum(checkbox1)是 577,065 和sum(checkbox1)605,880,计算机说它是一个男孩。
我已经尝试使用几种方法和值与形态变换相结合的阈值操作(在几种组合中侵蚀和扩张并使用许多内核形状和大小)并得到这个:
sex_field = cv2.fastNlMeansDenoising(cv2.blur(sex_field, (3, 3)), 30, 30, 15, 50)
_, sex_field = cv2.threshold(~sex_field, 127, 255, 0)
sex_field = ~cv2.morphologyEx(sex_field, cv2.MORPH_CLOSE,
np.ones((3, 3), np.uint8), iterations=3)
Run Code Online (Sandbox Code Playgroud)
问题cv2.fastNlMeansDenoising是贵。是否有更轻量级的算法对这个用例有用?
我在运行现有 Jupyter Notebook 文件时收到以下错误
The history saving thread hit an unexpected error (OperationalError('disk I/O error',)).History will not be written to the database.
Run Code Online (Sandbox Code Playgroud)
尽管如此,笔记本中的其余代码此后仍可以正常执行。但是,当我尝试创建新的笔记本文件时,此错误不允许我创建它,并且出现以下错误:
Error while saving file: python_notebook_ollie/Untitled2.ipynb disk I/O error
Traceback (most recent call last):
File "/work/ollie/muali/miniconda3/lib/python3.6/site-packages/notebook/services/contents/filemanager.py", line 421, in save
self.check_and_sign(nb, path)
File "/work/ollie/muali/miniconda3/lib/python3.6/site-packages/notebook/services/contents/manager.py", line 440, in check_and_sign
self.notary.sign(nb)
File "/work/ollie/muali/miniconda3/lib/python3.6/site-packages/nbformat/sign.py", line 449, in sign
self.store.store_signature(signature, self.algorithm)
File "/work/ollie/muali/miniconda3/lib/python3.6/site-packages/nbformat/sign.py", line 207, in store_signature
if not self.check_signature(digest, algorithm):
File "/work/ollie/muali/miniconda3/lib/python3.6/site-packages/nbformat/sign.py", line 241, in check_signature
self.db.commit()
sqlite3.OperationalError: disk I/O error …Run Code Online (Sandbox Code Playgroud) 我是编程新手,我正在尝试从 Amazon MWS API 中提取值。它返回我见过的最大的嵌套字典,但我无法弄清楚如何遍历它以找到我需要的值。
例子:
{'Products': {'Product': {'AttributeSets': {'ItemAttributes': {'Binding': {'value': 'Video '
'Game'},
'Brand': {'value': 'Nintendo'},
'Color': {'value': 'blue'},
'ESRBAgeRating': {'value': 'Everyone'},
'HardwarePlatform': {'value': 'Android/iOS'},
'IsAdultProduct': {'value': 'false'},
'ItemDimensions': {'Height': {'Units': {'value': 'inches'},
'value': '5.00'},
'Length': {'Units': {'value': 'inches'},
'value': '5.00'},
'Weight': {'Units': {'value': 'pounds'},
'value': '0.10'},
'Width': {'Units': {'value': 'inches'},
'value': '2.00'}},
'Label': {'value': 'Nintendo'},
'Languages': {'Language': {'Name': {'value': 'english'},
'Type': {'value': 'Unknown'}}},
'ListPrice': {'Amount': {'value': '34.99'},
'CurrencyCode': {'value': 'USD'}},
'Manufacturer': {'value': 'Nintendo'},
'Model': {'value': 'PMCAPBAA'},
'OperatingSystem': …Run Code Online (Sandbox Code Playgroud) 我使用的gdata-python-client访问谷歌域共享联系人API.
在企业应用程序中,您可能希望以编程方式访问用户数据,而无需他们进行任何手动授权.
有一个名为2LO(2脚OAuth)的协议,但似乎它与不推荐使用的OAuth1相关联:"重要:不推荐使用OAuth 1.0,并关闭新OAuth 1.0客户端的注册." 遍布Oauth1文档.
有一个新的基于OAuth2的" 域范围授权 "配方:
在Google Apps域中,域管理员可以向第三方应用程序授予对其用户数据的域范围内访问权限 - 这称为域范围的授权.要以这种方式委派权限,域管理员可以将服务帐户与OAuth 2.0一起使用.
这适用google-api-python-client但不适用gdata-python-client.
问题:有没有办法用Python实现这一目标?似乎来自gdata客户端的代码是史前的 - 是否有任何其他GAE运行时具有支持数据API委派的现代客户端库?
[更新]
如果我签署一个httplib2连接并调用Atom端点,我就可以检索该源.
http = httplib2.Http()
http = credentials.authorize(http)
resp, content = http.request(
'https://www.google.com/m8/feeds/contacts/default/full', 'GET'
)
Run Code Online (Sandbox Code Playgroud)
不幸的是gdata-python-client使用httplib而不是httplib2.
[解决了]
也许我错过了一些步骤,但在我们使用httplib2执行调用之前看起来令牌无效.我必须在运行[aeijdenberg]的答案中给出的样本之前运行上面的代码,否则我得到401.
python ×8
django ×2
amazon-mws ×1
configparser ×1
dictionary ×1
django-forms ×1
exponent ×1
google-oauth ×1
html ×1
http-headers ×1
image ×1
javascript ×1
nested ×1
nginx ×1
opencv ×1
python-3.x ×1
soap ×1
suds ×1
zsi ×1