这段时间刚学的django文件上传相关的知识,笔记,这里直接放出来
环境:django 3.x
django版本也算是比较高了。也是看网上有关django3.x的文章比较少,今天就谈谈怎么使用django3接受文件,以及如何使用django3显示文件。
注意:django3与其他版本

上传

  1. 首先models数据库配配置
    定义字段,设置属性upload_to 注意:这里的upload_to是相对于你在settings中的MEDIA_ROOT中的路径,常见的字段有ImageField,FileField

这是插入数据库之后的数据

  1. 定义文件存储路径
    在settings中添加 MEDIA_URL(相对路径,读取相关)和MEDIA_ROOT(绝对路径,存储相关,在配置显示的路由时会用到)属性

示例:MEDIA_URL = 'media'
MEDIA_ROOT = os.path.join( 'BASE_DIR','media')

  1. 表单注意事项
    表单处必须是post请求

提交编码enctype必须为 multipart/form-data,默认application/x-www-form-urlencoded

  1. 服务器接收文件
  2. = request.File.get('photo')

使用create即可

下面是views中的代码
django3  views代码

显示

  1. 配置urls
    在urlpatterns中加入 path(r'media/<path:path>',serve,{'document_root':MEDIA_ROOT})

其中serve来自 from django.views.static import serve
MEDIC_ROOT来自 from .settings import MEDIA_ROOT中

  1. 在template中使用 MEDIA_URL
    需要在settings配置中的template加入'django.template.context_processors.media'

就可以在所有template中使用哪个变量了

下面是  urls中的代码
可以看到django3和其他版本还是有一定区别的
django3urls路由中不使用正则表达式,要使用需要使用re_path库
要注意如果是使用 urlpatterns+=path(..)会报错,因为后面的path不是可迭代对象,使用.append即可

最后感谢大家的关注

现在慢慢开始走技术路线了,博客以python为主,欢迎交流

如果有django项目部署,或者django项目开发可以直接联系我
uwsgi+django+nginx+mysql
celery的配置
联系qq2679728742
也可以直接走淘宝担保:前往我的淘宝店


版权属于:杨森

本文链接:http://www.zwq20.com/archives/129/

文章全部作者原创,转载时须注明出处及本声明

最后修改:2020 年 05 月 14 日 08 : 36 PM
如果觉得我的文章对你有用,请随意赞赏