使用Django的时候,页面请求正常,也没有报任何错误,甚至连警告都没有的状况下,页面却仍是原地不动或者闪一下或者无限显示加载动画的状况下的解决办法

这个问题描述比较笼统,但根据我目前遇到过两种状况来看,彷佛都比较重要并且实用,因此打算分别讲述一下。
说明:Django的版本是Django2.0css

第一种:URL配置错误

页面闪一下,却原地不动,多是下边这种状况。html

例以下列连个URL:前端

re_path(r'^(\w+)/(\w+)/', views.display_table_objs,name="table_objs"),
re_path(r'^(\w+)/(\w+)/(\d+)/change/', views.table_obj_change,name="table_obj_change"),

你会发现第二个路由访问请求都毫无做用,但各类调试器查看器服务器控制台等都告诉你“200”,一切正常。正则表达式

做为一个Django新手,也是一脸懵逼,花了近一个小时终于搞明白,这个问题也是Django新手喷油们常犯的错误。归根结底是正则表达式使用不正确.。上边两个URL只限制了开头,没有限制结尾,因此URL都会在Django算法的做用下直接打开(\w+)/(\w+)/,而若是地址栏已是(\w+)/(\w+)/的话,天然是“原地不动”了。毫无疑问,Django的算法是一旦找到一个匹配结果就立马显示,这的确是高效的,不须要去遍历全部的URL,但这也产生了以上问题。算法

解决方案:

re_path(r'^(\w+)/(\w+)/$', views.display_table_objs,name="table_objs"),
re_path(r'^(\w+)/(\w+)/(\d+)/change/$', views.table_obj_change,name="table_obj_change"),

加上结束符号“$”,则Django就必须彻底匹配方能跳转,则网页运行正常。服务器

第二种:新页面的渲染过程当中出现了“不可描述的错误”

咱们知道,一旦Django或者Python代码出错,则会马上反映到页面上,致使程序终止。可是写过前端的朋友必定清楚,不管是JS仍是html仍是css,都是很是“包容”的语言。简单来讲:一点小错,无伤大雅;满篇错误,照样执行。若是不在调试环境下运行,那么任何错误百出的html页面都能“硬着头皮”运行下去。这一点也毫无疑问是有好有坏,好处自没必要说,这让前端页面有了极高的容错率和兼容性,这简直是安身立命之本。可是坏处就是,一旦须要加载的页面出现了某些“致命”错误,也不会有报错信息,而是会致使页面莫名其妙地加载或者干脆“消失”。
解决这个问题的方法天然也很简单:彻底模拟你要加载的页面(精确到每个参数,每个符号),而后在调试环境下独立打开,看看会不会出现一些致命的错误,若是没有,就人工检查一下。错误天然会出现。而后根据错误去修复便可。url

若是你的状况相似于这个案例,移步:http://blog.csdn.net/pluschang/article/details/78425523.net

相关文章
相关标签/搜索