Python Django保存图像在Manage.py shell中工作,但在查看页面时不能

时间:2013-12-10 01:29:31

标签: python django python-imaging-library

我创建了一个小功能:

def generate_name_img(self, _name):
    fontPath = os.path.join( settings.BASE_DIR, "DejaVuSans.ttf" )
    sans30   = ImageFont.truetype ( fontPath, 30 )
    _path    = "static/css/images/names/"

    im  =  Image.new ( "RGB", (200,50), "#ddd" )
    draw  =  ImageDraw.Draw ( im )
    draw.text ( (10,10), _name, font=sans30, fill="red" )

    _filename = "thename.jpg"
    im.save ( _path + _filename )

    return _filename

当我执行manage.py shell时,导入该函数并调用它,它可以工作。创建一个带有名称的.jpg文件。但是当我查看页面并让ajax调用脚本时,它会返回500错误,表示static/css/images/names/thename.jpg不存在。我希望有人可以帮助我。我在virtualenv中运行此脚本。一切正常,登录,保存到数据库,但我在创建jpeg时遇到问题。请告诉我我可能做错了什么。谢谢。

1 个答案:

答案 0 :(得分:0)

在您的设置文件中,输入如下内容:

from os.path import dirname, join, realpath

BASE_DIR = dirname(realpath(__file__))

STATIC_ROOT = join(SITE_ROOT, 'static')

对于用户上传的文件,建议使用MEDIA目录而不是STATIC目录。