我是靠谱客的博主 幽默万宝路,最近开发中收集的这篇文章主要介绍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步骤。给人的感觉就像是原来的页面进行了一次刷新操作一样。
<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>
最后在stacksoverflow上发现ajax post数据的时候不能将obj对象直接赋值给变量来发送,而是应该先初始化一个FormData,将需要post的数据先存入FormData中,然后再post出去才行。正确示例如下:

<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数据时的一个坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部