Django之处理用户上传的文件
来源:互联网 发布:linux c 开发环境 编辑:程序博客网 时间:2024/05/16 11:19
上传的静态文件的处理(2)
用户上传的文件, 比如用户上传的头像照片, 那么上传到哪里, 另外,我们又是如何可以在浏览器上可以访问到这些资源呢,这里, 就需要django对用户上传的静态文件的处理方法了
1.设置MEDIA_UR和MEDIA_ROOT
先不管这两个变量是什么, 先设置了再解释在settings.py里面
# settings.pyMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'my_media')
好了,现在来解释这两个变量到底有什么用,首先, MEDIA_ROOT是用来存储上传的文件的绝对路径,比如,我的一个modle里面有一个文件类型的字端
# myapp.modelsclass myModel(models.Model): img = models.ImageField(upload_to = '/myImage')
那么我创建一个对象时,里面的img字段存储的照片文件, 就在MEDIA_ROOT/myImage/ 文件夹下, 所以MEDIA_ROOT是设置上传的文件的目录的, 而具体安放的位置就是MEDIA_ROOT/upload_to设置的变量/ 文件夹下那么media_url是干什么的呢,和static_root一样, 是与浏览器有关的,比如,我要在浏览器上访问用户上传的照片, 如个人界面上要显示个人 头像, 那么浏览器是怎么访问到这个资源的呢, 首先,肯定不是在<img>标签里面的src写上照片所在的本地地址, 那么在url上面设置成什么,才能对应在服务器端拿到相应的静态文件呢那就需要MEDIA_URL来做映射了如果我在浏览器上输入字http://127.0.0.1:8000/media/文件的相对路径,那么实际在服务器端寻找资源的位置就是MEDIA_ROOT/文件的相对路径, 也就是 BASE_DIR/my_media/...
2.怎么才能让访问成功
如果按上面的设置配置好后,比如我的项目文件下, 有文件 my_media/myimage.png那么在浏览器上输入:http://127.0.0.1:8000/media/myimage.png结果是无法加载,page不存在为什么呢,因为没有设置url函数也就是我们要在urls.py设置这么一句才可以对浏览器输入的url进行匹配
from django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [ # other url()] + static(static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT))
这样, 就可以访问 http://127.0.0.1:8000/media/myimage.png了
注意: 这种方法, 只能在settings.py
DEBUG = True
时才有效,也就是说,仅适用开发过程中, 线上环境是不能这么干的
可以看一篇文章博客链接
0 0
- Django之处理用户上传的文件
- Django 上传文件media的url处理
- Django的AJAX实现之文件上传
- Django的Ajax实现之文件上传
- django处理上传文件初探
- angularjs + django 处理含文件的表单, 批量上传文件
- Django的文件上传
- Django静态文件处理、中间件、上传文件
- Django上传文件之iframe
- Django处理文件上传File Uploads
- django 静态文件之如何上传文件
- 上传文件之JS处理
- 上传文件之目录处理
- Ajax之文件上传处理
- Django下上传文件的问题
- Django 实现简单的文件上传
- django文件上传和下载的介绍
- Django文件上传遇到的问题
- java socket 多线程传信息
- CJSON编程使用,组装和解析json格式数据
- python笔记1
- Android总结篇系列:Android Service
- 实现ViewPager多种实现
- Django之处理用户上传的文件
- Spring createBean过程中BeanPostProcessor的处理机会
- 【玩转SQLite系列】(五)SQLite数据库优化
- pat甲1011. World Cup Betting(水题)
- 指针
- Big Event in HDU-01背包(dp思想)
- Hibernate检索策略
- JDBC层次结构和基本构成
- 数据库(二)关系数据库