首页 > 其他 > 详细

render() missing 1 required positional argument: 'template_name'

时间:2020-04-26 15:50:14      阅读:96      评论:0      收藏:0      [点我收藏+]

最近搭建好Django框架后,练习写post请求的时候遇到了各种坑,记录下来希望对未来的你有所帮助。

坑点一:cannot find from refence render_to_response

在写post请求的时候引入:from django.shortcuts import render_to_response,

提示:cannot find from refence render_to_response

原因:我的python版本为3.6.7,对应的django版本应该为2.1.x , 而我的django版本为2.1.15

技术分享图片

 

 

前几天 Django 官方推出了 3.0 框架,项目在 K8S 内部署启动的时候,报了这个错:ImportError: cannot import name ‘render_to_response‘ from ‘django.shortcuts‘。然后简单排查下了,进到容器内用 pip3 show django 命令可以看到框架升级到了 3.0(之前一直用的 Django 2+),看官方资料查到 Django 3.0 已经将 render_to_response 移除了。因为有部分代码在用 render_to_response ,而我们打包镜像的时候没有指定 Django 版本,所以启动时报错了。解决方法有两个:

方法一

 安装指定版本的 Django 版本(3.0以下),如:

pip3 install django==2.1.3

方法二

 使用 render 代替 render_to_response。

 相同点:都是展示模板页面的

 不同点:render 方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。它的作用就是将数据填充进模板文件,最后把结果返回给浏览器。render 自动使用RequestContext,而 render_to_response 需要 coding 进去。

return render(request,"information.html",{"name":"test","password":"123456"})
return render_to_response("information.html",{"name":"test","password":"123456"},context_instance = RequestContext(request))

参考文档:(这两个文档很有帮助!!!)

https://blog.csdn.net/baidu_35085676/article/details/76665143

https://www.cnblogs.com/shenh/p/11993679.html

坑二:render() missing 1 required positional argument: ‘template_name‘

技术分享图片

访问:http://127.0.0.1:8000/login/

技术分享图片

 

解决方法:

记得在return render(request, ‘login.html’)中,把request一定加到括号中

 技术分享图片

 

 再访问:http://127.0.0.1:8000/login/

技术分享图片

 

 参考文档:https://blog.csdn.net/qq_44490008/article/details/88762434 

 

希望对你们有所帮助!!!

 

render() missing 1 required positional argument: 'template_name'

原文:https://www.cnblogs.com/tangxiaoyuan/p/12779500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!