Форум сайта python.su
Я новичок в питоне, пока знаний и практики совсем мало, так что не пинайте. Подскажите направление, как примерно реализовать такую вещь. Есть (вернее будет) на хостинге скрипт на питоне, он будет динамически генерировать картинку постоянного размера. Как писать на питоне такой скрипт, я уже примерно представляю, вопрос у меня в другом: как сделать, чтобы при запросе по URL вроде
http://адрес_сайта.ru/dir/123456
Офлайн
Посмотрите на flask.
Офлайн
http://pypi.python.org/pypi/bottle/
хотя и на flask будет очень похоже
#! /usr/bin/env python # -*- coding: utf-8 -*- from bottle import route, run, debug, HTTPResponse from PIL import ImageFont, Image, ImageDraw from cStringIO import StringIO # BG_COLOR = (255, 192, 203) debug(True) # bottle debug mode FONT = ImageFont.truetype('verdana.ttf', 70) # # @route('/') @route('/:param') def index(param='World'): return 'Hello/' + param # # @route('/nums/') @route('/nums/<num:int>') def nums(num=42): img_text = Image.new('RGBA', (200, 200), BG_COLOR) draw = ImageDraw.Draw(img_text) draw.text((0, 0), str(num), fill=(0, 0xff, 0), font=FONT) img_text = img_text.rotate(45, expand=True) img_file = StringIO() img_text.save(img_file, 'PNG', optimize=True) body = img_file.getvalue() return HTTPResponse(body, header={'Content-Type': 'image/png'}) # run(host='localhost', port=8000, reloader=True)
Отредактировано EBFE (Авг. 17, 2012 01:29:02)
Офлайн
fata1ex, EBFE, спасибо за интересные предложения. Вы мне просто открыли глаза, а то я по старым своим стереотипам полагал, что придется делать через .htaccess и mod_rewrite, направляя на скрипт и передавая ему параметры. А всё оказывается значительно интереснее, чем думал, теперь будет материал для пережевывания.
P.S. если возникнут ещё какие-то мысли по сабжу, буду рад если поделитесь.
Отредактировано digi (Авг. 17, 2012 19:20:42)
Офлайн
@route('/nums/<num:int>')
это регулярка ?
Офлайн
это регулярка ?А что, похоже?
debug(True) # bottle debug mode
Bottle runs on the built-in wsgiref WSGIServer by default. This non-threading HTTP server is perfectly fine for development and early production, but may become a performance bottleneck when server load increases.Тут все неплохо описанно:
Отредактировано EBFE (Авг. 18, 2012 00:28:22)
Офлайн
Еще подскажите насчет вывода динамического изображения. Изображение будет представлять собой некое число, динамически формируемое. Это число состоит из разрядов, каждый из которых является цифрой, выводимой на небольшом фоновом изображении.
Вопрос: как эффективней поступить:
1. в процессе вывода картинки заново отрисовывать каждый разряд и складывать из них изображение
или
2. вид каждой цифры на фоне сохранить в отдельный файл, и затем при выдаче общего изображения просто формировать общую картинку, считывая каждый разряд из соответствующего файла с сохраненным изображением цифры
Может знатокам этот вопрос и покажется очевидным, прошу не пинать.
Офлайн