百e购开发日记(四)

e 购开发日记(四)

静态文件

查看上回:部署   系统日记   批量处理

 

在项目中的 CSS javascript 上传的图片等 , Django 本身不提供静态文件服务所以第一步就是 Apache 中配置静态文件服务:

 

Alias /media/ /{{YOUR_MEDIA_LOCATION}} /

<Directory /{{YOUR_MEIDA_LOCATION}} >

        Order deny,allow

       Allow from all

</Directory>
 

配置好了以后,所有 /media 路径下的请求请被 Apache 静态转发了。 Django 的配置我们还有修改修改。一个是 MEIDA_URL, 还有一个就是 ADMIN_MEDIA_PREFIX

MEDIA_URL 也时就是所有静态文件的前缀了 , 比如你的 MEIDA 放置的目录是

 

   my_home/

        media/

           css/

             main.css
 

 

你的 Django 模板可能是这样设定的:

<script type="text/javascript" src="{{MEDIA_URL}}css/main.css"></script>
 

MEDIA_URL 就是上面在 settings.py 里面配置的。

为什么需要 ADMIN_MEDIA_PREFIX 呢, django 自己的发布包里面就带有一份静态的资源 css& js 等等,他的目录是在系统的 django 安装目录下也就是 python site-packages 包内,所以我们需要吧他拷贝出来放置在我们的 media 下面将来自己要改的可以改吧改吧。

具体的目录在:

python25\Lib\site-packages\django\contrib\admin\media
 

 

ok, 到这里基本都配置了。 放一个静态文件在你的 meida 尝试访问一下看看。

 

图片的处理

 

图片的保存位置,在 Django settings.py 里面我们需要加入如下配置:

 

MEDIA_ROOT = '{{YOUR_MEIDA_DIR}}'
 

 

必须是一个绝对路径的位置,而其主要了一定要在你的静态文件夹下,而其写权限要打开, Django 本身自带了一个自动处理上传文件的组件: ImageField, 但是往往这个不能往前满足我们的需求,比如往往我们需要对上传的图片压缩,剪切啊,生成不同大小的 thumb, 这个有该如何操作呢? 当然 ImageField 留下用户可以定制的接口:

upload_to: 提供重新命名上传文件名 / 上传路径的接口

storage 具体的储存方式,这个时候我们可以对图片进行各种操作

可以具体参照 Django 的自带的   django.core.files.storage.FileSystemStorage

一般 Python 下是用的 PIL 对图片进行处理, django 已经有第三方提供比较成熟的图片处理应用 Django photologue

 

很多网站,用户都可以剪辑自己的头像,如果你是使用 Jquery Jcrop 进行 WEB 端的剪辑,后台同样适应 PIL 进行操作。 下一将将是 Django 模型。 Django 遵循 MVC 设计模式,但是他的具体的 Model Control & View 具体的角色有点不太一样 , 非纯粹的学院派描述的那个样子。

 

你可能感兴趣的:(JavaScript,jquery,django,css,python)