ImportError: cannot import name 'render_to_response' 解決方法


  前幾天 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))

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM