前端点击链接--->> 路由到url.py,找到views.py里响应的处理函数--->> views.py里处理逻辑,返回data渲染页面--->>渲染数据到子模版(子模版继承父模板)
1、前端点击链接(href添加路由路径)
2、路由到url.py,找到views.py里响应的处理函数(如 函数SSherot)
3、views.py里处理逻辑,返回data渲染页面(tablet.html是一个子模板。用data渲染它)
4、渲染数据到子模版(子模版继承父模板)
续更。。。
前端用了jquery之后,交互变得简单了很多,续更一下...
1、前端(建立在jquery成功导入的情况)
<!--实现点击branchId,请求svn版本数据,刷新在一列option中-->
<!--js代码--><!---->
{%block js%}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#branchId').change(function(){
var branch_name = $("#branchId").find("option:selected").text();<!--获取option的text值-->
console.log(branch_name)
<!--第一个参数是路由路径('init是url.py文件里path的name参数),第二个参数是提交的数据,第三个是返回的数据,通过data.字典名获取'-->
$.get("{% url 'init' %}",{"branch_name":branch_name},function(data){
alert(data.teList);
<!--循环遍历list,当返回为字典时,改为$.each(data.teList,function(key,value){});-->
$.each(data.teList,function(i,item){
<!--生成option标签,并将list每一项添加到标签中,,#versionId是select的id,使用如下方法添加-->
var opti = document.createElement('option');
opti.innerHTML = item
$('#versionId').append(opti)
});
});
});
});
</script>
{%endblock js%}
<!--html代码-->
<select style="width:150px;height:25px" name="version_name" id="versionId" ></select>
看一下结果:
2、路由and后端
#url.py文件
path('baset/init/',query.svnInit,name='init') #name为jquery的访问路径
#views.py文件
return JsonResponse({"teList":teList}) #返回json数据,js代码可以看到返回数据的获取