我是靠谱客的博主 幽默万宝路,最近开发中收集的这篇文章主要介绍django学习踏坑行-11.关于django 模版中{% url 'xxx' %}的使用2.关于ajax post数据时的一个坑,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.关于django 模版中{% url 'xxx' %}的使用
django中为了避免在页面中使用链接地址硬编码的不友善的操作方式,引入了{% url 'xxx' %}的从后台动态传入网络地址的方式。不过在使用过程中却产生了一个bug。每次请求这个动态生成的地址时,网页都会提示我
Reverse for 'xxx' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
通过查询{% url 'xxx' %}的使用方式了解到,这里动态获取地址的名称xxx对应的是urls.py中每个url规则的name属性,而不是直接调用我们在views中的方法。所以应该养成一个良好的习惯,给每个url规则都起一个名字。示例如下:
url(regex=r'^newBlog/$', view=views.newblog, name="newBlog"),
2.关于ajax post数据时的一个坑
我在我的代码中通过下面的ajax想把我form中的title,body和一张图片post出去。可是每次执行到ajax中的data赋值时就直接退出了,造成整个页面一直没有执行post步骤。给人的感觉就像是原来的页面进行了一次刷新操作一样。
最后在stacksoverflow上发现ajax post数据的时候不能将obj对象直接赋值给变量来发送,而是应该先初始化一个FormData,将需要post的数据先存入FormData中,然后再post出去才行。正确示例如下:<script> $(document).ready(function () { $("#submit").submit(function () { var title = $("#title").val(); var body = $("#body").val(); var images = $("#browsefile")[0].files[0]; $.ajax({ type: "POST", data: {'title': title, 'body': body, 'images': images}, url: "{% url 'xxx' %}", processData: false, contentType: false, success: function (result, statues, xml) { alert(result); }, error: function () { alert("111"); } }) }) }) </script>
<script> $(document).ready(function () { $("#submit").submit(function () { formdata = new FormData(); formdata.append('title', $("#title").val()); formdata.append('body', $("#body").val()); formdata.append('images', $("#browsefile")[0].files[0]); $.ajax({ type: "POST", data: formdata, url: "{% url 'xxx' %}", processData: false, contentType: false, success: function (result, statues, xml) { alert("success"); }, error: function () { alert("fail"); } }) }) }) </script>
另附通过ajax发送图片的说明文档:http://webkul.com/blog/send-images-through-ajax/
最后
以上就是幽默万宝路为你收集整理的django学习踏坑行-11.关于django 模版中{% url 'xxx' %}的使用2.关于ajax post数据时的一个坑的全部内容,希望文章能够帮你解决django学习踏坑行-11.关于django 模版中{% url 'xxx' %}的使用2.关于ajax post数据时的一个坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复