Форум сайта python.su
import cherrypy
class Home:
def index(self):
return ‘'’
<img src=“путь к файлу картинки” >
‘'’
index.exposed = True
root = Home()
cherrypy.tree.mount(root)
if __name__ == ‘__main__’:
import os.path
cherrypy.server.quickstart()
cherrypy.engine.start()
С помощью это приложения я хочу получит страницу с изображением, но получаю ошибку:
NotFound: (404, “The path ‘путь к файлу картинки’ was not found.”)
В чем проблема?
Офлайн
Проблема в том что нужно или написать еще один метод, который будет обслуживать ‘путь к файлу картинки’ или объяснить cherrypy что этот путь нужно обрабатывать как статический: http://www.cherrypy.org/chrome/common/2.2/docs/book/chunk/ch03.html#id3481832
Кстати, действительно, почему не использовать TurboGears? Тот же cherrypy, но к нему в довесок еще куча всяких удобств. На голом cherrypy писать намного сложнее…
Офлайн
Во-первых, какая версия cherrypy?
Во-вторых, нужно настроить директорию со статическими данными (css, картинки, javascript).
В своем главном конфиге пропиши:
tools.staticdir.root = “абсолютный путь к директории со статическим контентом”
Обычно я называю директорию со статическим контентом как - static.
В ней создаю папки: img, css и js
А затем в конфиге приложения я обычно делаю так:
tools.staticdir.on = True
tools.staticdir.dir = “css”
tools.staticdir.on = True
tools.staticdir.dir = “js”
tools.staticdir.on = True
tools.staticdir.dir = “img”
А вообще, смотреть тут: http://www.cherrypy.org/wiki/StaticContent
Да и доку неплохо было бы почитать ;)
Офлайн
Спасибо.
MkdirДа, грешу этим немного:)
Да и доку неплохо было бы почитать wink
Офлайн
Вопрос остается в силе.
Mkdir
Версия cherrypy - 3.0.1
config(cfg.conf):
static_filter.root = “полный путь”
static_filter.on = True
static_filter.file = “полный путь”
static_filter.on = True
static_filter.dir = “полный путь”
Собственно сам скрипт:
import os.path
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return “”“<html>
<head>
<title></title>
</head>
<html>
<body>
Hello world!
<img src=”./img/000229.jpg“>
</body>
</html>”“”
index.exposed = True
root = Root()
cherrypy.tree.mount(root)
if __name__ == ‘__main__’:
import os.path
cherrypy.config.update(os.path.join(os.path.dirname(__file__), ‘cfg.conf’))
cherrypy.server.quickstart()
cherrypy.engine.start()
Сам сервер стартует, но картинка не отображается.
Офлайн