Django与JS通信基本方法及原理;Django与jQuery通信;Django前后端传值

在着手开发一个SPA项目时,由于才疏学浅,被一个问题蹂躏了将近三天:如何把Django后台Views的值传递给前端的jQuery(JS),再由前端处理后显示与HTML中或者仅仅作为参数去使用,同时这个过程要是Ajax方式的,也就是不刷新页面。

官方文档,网上的教程(如“自强学堂”),技术博客,搜一下,满都是。这个问题似乎很好解决。但是,如果知识功底不扎实,也没有人指导,还是会折腾好久的。我要把解决过程和我掌握基本知识写下来,以免以后的朋友再踩这个坑。


基本环境:

python:3.6.3

Django:1.11.6


这个问题的解决有以下两种入手方式:

1.采用Django自带的Template模板系统

在学习Django的时候,大家都至少接触过这个系统,它是Django内置的。就如同静态文件加载(static)一样,采用了这个系统的模板,就必须在Django的server下打开网页,否则毫无疑问会报错。

在这里只做基本回顾:


结构:

{ {  }}  双大括号包括起来的是变量

{%  %} 模式是块,可以用if和for之类的语句进行遍历

|  括号中的值末尾加“|”,可以使用筛选器,筛选结果

用法:

①在.py文件中 from django.template import Template

便可以在文件的任意字符串中使用模板

②直接在html文件的几乎任意位置使用,在页面被context(一会说)渲染的时候,便会被所渲染的值替代。


思路:把你想要的值(无论是数组、整形、字符串、字典还是别的什么混合结构),用 { { 名称}} 的格式返回给JS代码中的某个变量,然后就可以自由自在的运用它了。

示例:

1.使用ajax方法向url "mysite/foobar/"发送请求

2.当访问url "mysite/foobar/" 的时候,调用Views里的函数 foobar采用某个函数返回我们要的字典 data={'foo':'bar'} 到前端

3.在前端的html页面中的<script>标签中,使用var name = { { data|safe }}完成接收


urls.py

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值