当前位置: 首页 > 网络应用技术

JS如何传递给Django?

时间:2023-03-05 21:43:25 网络应用技术

  指南:本文的首席执行官注释将介绍有关JS如何传递给Django的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  在JS中通过Ajax

  您使用模板,在Python中定义它,然后返回到HTML模板,不需要JS

  当您说JS的分配方法时,必须首先解释JS的数值类型:基本类型和参考类型。

  1.基本类型

  基本数据类型是:未定义,布尔值,数字,字符串,null。基本类型存储在堆栈区域中,并且访问是按值访问的,这意味着您可以操作在变量中保存的实际值。

  当分配数据的基本类型时,它是一个实际值。A和B之间没有连接。B由A复制,并且彼此独立。(字面类型是基本类型)

  var a = 10;

  var b = a;

  console.log(a+',''+b);// 10,10

  a ++;

  console.log(a+','+b)// 11,10

  2.报价类型

  参考类型是指对象。它可以具有属性和方法,我们可以修改其属性和方法。参考对象的方法是:堆栈中对象变量的名称标记为名称的名称和存储对象在堆中的地址,数据存储在堆中。

  该对象使用对分配的引用。当我们将对象分配给新变量时,该对象的地址实际上是对象的地址,而不是堆中的数据,也就是说,两个对象指向同一存储空间。无论哪个对象更改,存储空间的内容实际上都会更改。因此,这两个对象是链接。

  3.数组是参考类型

  让我们首先看一个示例:

  var a = [1,2,3];

  var b = a;

  a = [4,5,6];

  警报(b);// [1,2,3]

  似乎数组是基本的类型。

  var a = [1,2,3];

  var b = a;

  a.pop();

  警报(b);// [1,2]

  这怎么样?因为:(知道解释)

  a = [4,5,6];//参考本身的更改,数组对象没有更改,A和B没有关系。

  a.pop();//数组对象已更改,引用尚未更改。

  b = a;//此操作后,b直接指向数组对象,而不是b指向A,而a则指向阵列。

  //因此,更改参考不会影响B参考,并更改数组数。

  这个问题与我之前的todo list中所述:

  var tasks = this.state.data;

  tasks = tasks.filter(function(i){

  返回i.index!= taskid;

  });

  由于过滤器函数返回一个新数组,尽管此时仍在任务中收到了一个新数组,但此时,任务点已经是一个新数组,因此任务和数据不再相关。(Concat还返回新数组)

  推送和拼接功能在原始数组上操作。原始数组中的SO称为操作是指不变,因此任务和数据是关联的。

  4.参数传输

  JS的功能参数传输是值传输。

  当引入基本参数类型时:它只是将内容复制到i,而我和年龄无关紧要。

  功能设置(i)

  {{{

  警报(i);// 24

  i = 181;

  警报(i);// 18,我改变不会影响外界

  };

  var年龄= 24;

  (年龄);

  警报(年龄);// 24

  当传递参数是参考类型时:

  函数setName(obj)

  {{{

  obj.name ='haha';

  };

  var obj2 = new Object();

  setName(obj2);

  警报(obj2.name);// 哈哈

  这看起来像是参考,因为obj.name已经改变,但实际上并不值得。因为OBJ2本身的值是新对象的地址,因此该地址已传递。

  这是阿里2014年的书面测试问题:

  var a = 1;

  var obj = {

  B:2

  };

  var fn = function(){};

  fn.c = 3;

  功能测试(X,Y,Z){

  x = 4;

  y.b = 5;

  Z.C = 6;

  返回z;

  }

  测试(a,obj,fn);

  警报(a + obj.b + fn.c);

  答案:12

  首先,在测试中的实际参数中,A是基本类型(复制一个值)。OBJ是对象(指向地址,您也移动我),当然不是基本类型。执行测试时,将X分配给4(与A无关1),y的b分配了5,然后obj b也变为5,z的c变为6至6:fn c也将为6。因此,警报的结果应为1+5+6 = 12。,测试不会返回Z,Z仍在更改)。

  参考如下

  如果该项目的目录是:

  我的网站:

  manage.py

  我的网站:

  __init__.py settings.py urls.py wsgi.py

  博客(已建立的应用程序):

  models.py views.py test.py __init__.py模板

  开始配置:

  1.在外部Mysite目录中(即项目的根目录)

  2.打开设置。py并添加:

  导入操作系统

  static_url ='/static/'

  staticfiles_dirs =(

  

  (((((

  3.打开urls.py并添加(注意:如果在博客应用程序中新创建一个urls.py文件,则应将其添加到博客目录中的urls.py文件中。我曾经在此PIT中纠结许久):

  导入设置

  urlpatterns =模式(

  url(r'^static/(?ppath。*)$','django.views.static.serve',

  {'document_root':settings.static_root}),

  治愈

  使用:

  假设在模板中导入外部/home/fudaoji/mysite/js/jequery.js文件(存储在模板文件中),那么您可以直接直接可以直接为

  脚本类型=“ text/javascript” src ='https://www.shouxicto.com/stative/js/jqury.js'/javascript

  Django模板变量属于背景服务器,JS来自前台,不能分配给它们。您应在服务器段中分配一个值,然后将其传递到首页。render_to_response可以添加模板变量。它可以直接在页面上使用。您可以检查render_to_response的功能的使用。

  url ='管理员/操作?名称= xxxpwd = xxx'

  在上述格式中,名称和PWD是HTML中的ID,例如输入ID.xxx表示可以固定的值或JS获得的输入框的值。

  Python对象转换为JSON对象。有一种更好的方法,您不应在您说的周期中实施,如下所示

  在视图中,

  来自django.core导入服务器

  datax = [List1 [],List2 [] .....]

  data = serializers.serialize('xml',datax)

  返回render_to_response('index.html',{'title':'test','list':data,'row':row':row,'col's})

  在index.html中

  脚本类型='text/javascript'

  var list = {list}};

  /脚本

  ------------------------------------------------------------------------------------------------------------------------------------------------------------

  上面的代码只是随意编写的,没有测试,但是您不能使用串行序列,您可以打百多:django serializers,许多示例

  结论:以上是首席CTO的所有内容都注明了JS如何传递给Django到Django的内容。感谢您阅读本网站的内容。我希望这对您有帮助。有关JS如何将价值传递给Django的更多信息,请不要忘记在此站点上找到它。