我目前正在使用blobstore为图像生成缩略图,但是,我喜欢在img标记中存储缩略图的尺寸,因为这是一种很好的做法,有助于加快渲染速度并使部分加载的页面看起来更好一些.
如何只计算原始图像的尺寸,如何计算blobstore生成的缩略图的尺寸?
我以前的尝试并不是很准确,大部分时间都是一两个像素(可能是由于四舍五入).
我知道获取缩略图而不是使用图像API检查尺寸会起作用,但我认为效率低下.
这是我目前用来计算它的代码,然而,它偶尔偏离一个像素,导致浏览器稍微拉伸图像,导致调整大小的文物以及性能较差.
from __future__ import division
def resized_size(original_width, original_height, width, height):
original_ratio = float(original_width) / float(original_height)
resize_ratio = float(width) / float(height)
if original_ratio >= resize_ratio:
return int(width), int(round(float(width) / float(original_ratio)))
else:
return int(round(float(original_ratio) * float(height))), int(height)
Run Code Online (Sandbox Code Playgroud)
准确性非常重要!
我一直试图通过使用Pika库(由gevent修补的猴子)在我的gevent程序中使用RabbitMQ,gevent喜欢随机抛出超时错误.
我该怎么办?我可以使用另一个图书馆吗?
WARNING:root:Document not found, retrying primary.
Traceback (most recent call last):
...
File "/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 32, in __init__
BaseConnection.__init__(self, parameters, None, reconnection_strategy)
File "/usr/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 50, in __init__
reconnection_strategy)
File "/usr/lib/python2.7/dist-packages/pika/connection.py", line 170, in __init__
self._connect()
File "/usr/lib/python2.7/dist-packages/pika/connection.py", line 228, in _connect
self.parameters.port or spec.PORT)
File "/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 44, in _adapter_connect
self._handle_read()
File "/usr/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 151, in _handle_read
data = self.socket.recv(self._suggested_buffer_size)
File "/usr/lib/python2.7/dist-packages/gevent/socket.py", line 427, in recv
wait_read(sock.fileno(), timeout=self.timeout, event=self._read_event)
File "/usr/lib/python2.7/dist-packages/gevent/socket.py", line 169, in wait_read
switch_result = get_hub().switch() …Run Code Online (Sandbox Code Playgroud) 作为一名Python程序员,我喜欢我的代码是可重用的,我试图避免代码中的名称冲突(两个不同的模型共享相同类型的名称).
目前我只是将一些有意义的文本添加到模型的类名中,但这非常简单.
能够明确设置模型的类型将解决我的问题,但我不知道如何做到这一点,有谁知道如何?
add_type在使用mimetypes模块时,我真的厌倦了一堆"缺失"的mimetypes ,我有什么办法可以做到以下几点吗?
# This file is named mimetypes.py
from mimetypes import *
add_type('application/x-rar-compressed', 'rar', False)
add_type('video/mp4', 'mp4', False)
add_type('video/x-ms-wmv', 'wmv', False)
add_type('video/x-flv', 'flv', False)
Run Code Online (Sandbox Code Playgroud)
这个问题是它试图导入自己,而不是"真正的" mimetypes模块.
我知道它是单声道和不好的练习,但我认为它不会真正破坏任何东西.
在使用Datastore Plus时,我无法确定如何将参数传递给事务.
有人可以重写这个常规数据存储区示例代码吗?
from google.appengine.ext import db
class Accumulator(db.Model):
counter = db.IntegerProperty()
def increment_counter(key, amount):
obj = db.get(key)
obj.counter += amount
obj.put()
q = db.GqlQuery("SELECT * FROM Accumulator")
acc = q.get()
db.run_in_transaction(increment_counter, acc.key(), 5)
Run Code Online (Sandbox Code Playgroud)
我对数据存储区加上最后一行的等价物特别感兴趣.
该数据存储以及文档的示例代码不处理的所有参数(在事务内部硬编码).
python google-app-engine transactions google-cloud-datastore
如何从Flash文件中提取尺寸(宽度和高度)?
我打算在Google App Engine上托管的webapp中使用此代码,因此不具备纯Python的lib将无效.
python ×6
blobstore ×1
flash ×1
gevent ×1
mime-types ×1
pika ×1
rabbitmq ×1
thumbnails ×1
transactions ×1