вы можете попробовать, как показано ниже, используя агрегатную функцию
select *, MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)
as score
from tutorial
where MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)
and MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE)=
(select max(MATCH(Description) AGAINST('Acifree -O 10ml' IN NATURAL LANGUAGE MODE))
from tutorial
)
выход
id description score
1 Acifree -O 10ml 0.15835624933242798
2 Acifree O 10ml 0.15835624933242798
Когда MATCH()
используется в предложении WHERE, возвращаемые строки автоматически сортируются с наивысшей релевантностью. Значения релевантности являются неотрицательными числами с плавающей точкой. Нулевая релевантность означает отсутствие сходства. Релевантность вычисляется на основе -
Поскольку вам нужно самое лучшее, поэтому я взял максимальный балл
При необходимости в больше, чем рассмотрение расширения один путь состоял бы в том, чтобы прочитать заголовок JPEG и проверить, что это соответствует допустимым данным. Формат для этого:
Start Marker | JFIF Marker | Header Length | Identifier
0xff, 0xd8 | 0xff, 0xe0 | 2-bytes | "JFIF\0"
, таким образом, быстрое устройство распознавания было бы:
def is_jpg(filename):
data = open(filename,'rb').read(11)
if data[:4] != '\xff\xd8\xff\xe0': return False
if data[6:] != 'JFIF\0': return False
return True
Однако это не поймает неправильных данных в теле. Если Вы хотите более устойчивую проверку, Вы могли бы попытаться загрузить ее PIL. например:
from PIL import Image
def is_jpg(filename):
try:
i=Image.open(filename)
return i.format =='JPEG'
except IOError:
return False
Используйте PIL. Если это может открыть файл, это - изображение.
Из учебного руководства...
>>> import Image
>>> im = Image.open("lena.ppm")
>>> print im.format, im.size, im.mode
Ознакомьтесь с jQueryUI аддонами перетаскиваемыми и удаленными .
Буквально сотнями часов было потрачено на фреймворк jQuery, чтобы сделать такие сложные задачи почти тривиальными. Воспользуйтесь усилиями команды jQuery по упрощению программирования многофункциональных кросс-браузерных приложений для всех нас;)
Если вы настаиваете на том, чтобы попробовать это с необработанным javascript. Вы захотите сделать несколько вещей. Во-первых, программно установить для всех перетаскиваемых элементов относительное / абсолютное позиционирование. Если вы щелкнете по определенному элементу, заставьте его верхние / левые значения в CSS отражать изменения, внесенные осью x, y мыши, пока щелчок не будет отпущен. Кроме того, вы захотите обновить z-индекс каждого перетаскиваемого объекта, когда он ' в шаблоне Mako:
${h.form(h.url_for(action="save_image"), multipart=True)}
Upload file: ${h.file("upload_file")} <br />
${h.submit("Submit", "Submit")}
${h.end_form()}
в контроллере загрузки:
def save_image(self):
upload_file = request.POST["upload_file"]
image_type = imghdr.what(upload_file.filename, upload_file.value)
if not image_type:
return "error"
else:
return image_type