在django视图中使用线程完成后台工作
在django开发过程中,经常会遇到需要下载文件的任务,如果文件比较大,直接在视图中完成必定会造成视图被堵塞,界面卡顿的现象。此时需要在视图中开启一个线程,并在该线程中处理下载任务。
1.编写html模板(templates/download.html)
注意:模板中引用路由地址一般使用{%url‘路由名’参数1,参数2,....%}的方式,其中路由名则为urls.py中定义的路由中的name关键字的值。
模板一般保存在templates目录下,当然templates需要在settings.py中定义。
2.编写视图方法(views.py)
一个视图函数,简称视图,是一个简单的Python函数,它接受Web请求并且返回Web响应。
响应可以是一个HTML页面、一个404错误页面、重定向页面、XML文档、或者一张图片。
注意:render():返回文本,第一个参数为request,第二个参数为字符串(页面名称),第三
#个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。render和redirect是在HttpResponse的基础上进行了封装:
render:底层返回的也是HttpResponse对象
redirect:底层继承的是HttpResponse对象
3配置路由文件
路由简单的来说就是根据用户请求的URL链接来判断对应的处理程序,并返回处理结果,也就是URL与Django的视图建立映射关系。
Django路由在urls.py配置,urls.py中的每一条配置对应相应的处理方法。Django不同版本urls.py配置有点不一样,Django1.1x版本中使用url方法,Django2.2.x版本中使用re_path和path方法。
此处的路由配置为:
其中url一般用于地址需要进行正则匹配的情况,如果url中没有正则表达式则可以使用path;views.download则表示引用视图中的路由方法,而参数name则是定义该路由地址的名字,方便在html中直接引用该地址。
session下载编写完所有的代码和配置文件后即可下载文件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论