#django中js调用python函数方法,不刷新页面,加载内容
#django实时刷新局部页面的方法,不刷新网页的情况下,加载内容
django使用中,由于js代码和python代码的区别,有时候python代码已经写好了,在写一次js代码比较麻烦。因此有没有一种方法可以直接在js中调用python函数或者代码?同时如果能像js一样在不刷新页面的情况下,加载内容,或者说刷新局部页面呢?
下面介绍一种简单的方法:使用 jQuery实现:
代码如下:
view.py
from django.shortcuts import render
from django.http import HttpResponse
def test(request):
return render(request, 'test.html')
def change(request):
a = request.GET.get('a', 0)
b = request.GET.get('b', 0)
c = int(a) + int(b)
return HttpResponse(str(c))``
urls.py
from django.conf.urls import url, include
from django.contrib import admin
from app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test', views.test, name='test'),
path('change', views.change, name='change'),
]
注意:前面的script引入外部js文件不能去掉,这是找到的 jQuery库来实现的,可以打开src中的网页,将js内容拷贝下来,放在自己的目录中,修改路径。
test.html
<!DOCTYPE html>
<html>
<body>
<p>请输入两个数字</p>
<form action="change" method="get">
a: <input type="text" id="a" name="a"> <br>
b: <input type="text" id="b" name="b"> <br>
<p>result: <span id='result'></span></p>
<button type="button" id='sum'>提交</button>
</form>
<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script>//注意:前面的script引入外部js文件不能去掉,这是找到的 jQuery库来实现的,可以打开src中的网页,将js内容拷贝下来,放在自己的目录中,修改路径。
$(document).ready(function(){
$("#sum").click(function(){
var a = $("#a").val();
var b = $("#b").val();
$.get("change",{'a':a,'b':b}, function(date){
$('#result').html(date)
})
});
});
</script>
</body>
</html>
其实就是ajax,只是这种方法不需要安装那些操作,由于用 jQuery 实现 ajax 比较简单,所以我们用 jQuery库来实现.,这里用了jQuery.get() 方法,并用 $(selector).html() 方法将结果显示在页面上。原文链接:https://www.js1331.com/jiaocheng?id=280628