zoukankan      html  css  js  c++  java
  • 网页编程-Djiango(二)

    一、初始Ajax

     ajax的写法:

    $.ajax({
    				url:'/host',
    				type:'POST'
    				data:{'k1':123,'k2':'root'}
    				success:function(data){
    				
    				}#执行成功后自动触发这个函数
    		
    		
    		
    		
    		})
    

      

    ajax的使用:

    #在JavaScript中写jquery
    			$('#ajax_submit').click(function(){
    						$.ajax({
    				url:'/ajax_text',
    				type:'GET'
    				data:{'user':'root','pwd':'234'}
    				success:function(data){
    					alert(data)
    				}#执行成功后自动触发这个函数
    			
    			
    			})
    

      

    一些注意的地方:

    			在JavaScript中将字符串转换为对象:
    			 JSON.parse(data)
    			 对象转化为字符串:
    			 JSON.stringfy(data)
    			 
    			 
    			 建议:永远让服务端返回一个字典
    				return HttpResponse(json.dumps(字典))
    	
    			ajax 将form中的数值打包:
    			data:$('#add_form').serialize()
    

      

    当数据有列表时,加入traditional
    加入dataType 可以自动将字符串转换为json对象形式

    		$.ajax({
    		url:'/host',
    		type:'POST'
    		data:{'k1':123,'k2':[1,2,3]}
    		dataTpye:json
    		traditional:True
    		success:function(data){
    		
    		}#执行成功后自动触发这个函数
    		error:function(){}#未知错误时
    		
    		})
    

      

    二、多对多

      创建多对多:

    方式一:自定义关系表
    			class Host(models.Model):
    				nid = models.AutoField(primary_key=True)
    				hostname  = models.CharField(max_length=32)
    			
    			class Application(models.Model):
    				name = models.CharField(max_length=32)
    				
    			class HostTOApp(models.Model):
    				hobj = models.ForeignKey(to='Host',to_field='nid')
    				aobj = models.ForeignKey(to='Application',to_field='id')
    
    方式二:自动创建关系表
    			class Host(models.Model):
    				nid = models.AutoField(primary_key=True)
    				hostname  = models.CharField(max_length=32)
    			
    			class Application(models.Model):
    				name = models.CharField(max_length=32)
    				r = models.ManyToManyField('Host')
    

      

    操作:

    1.
    		HostTOApp.objects.create(hobj_id = 1, aobj_id = 2)
    		
                    #但是自动创建的无法直接对第三张表进行操作
    
    2.
    			添加:
    			obj = Application.objects.get(id=1)
    			obj.r.add(1)
    			obj.r.add(2,3)
    			obj.r.add(*[1,2,3,4])
    			删除:
    			obj.r.remove(1)
    			obj.r.remove(2,3)
    			obj.r.remove(*[1,2,3,4])
    			
    			obj.r.clear()
    			
    			更新数据
    			obj.r.set([3,5,7])
    
    
    		获取所有相关应用的主机列表:
    			obj.r.all() 	queryset 对象            
    

      

  • 相关阅读:
    Linux-grep 命令和find 命令 (6)
    第1阶段——u-boot分析之make 100ask24x0_config指令(1)
    shell变量$(CURDIR),$0,$1,$2,$#含义解释
    ln命令详解
    快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题
    java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
    AndroidStudio 3.0中之后无法打开DDMS [Android Device Monitor] 问题
    解决android sdk docs帮助文档打开慢的问题
    Android Intent的使用
    约束布局ConstraintLayout详解
  • 原文地址:https://www.cnblogs.com/crazytao/p/7765275.html
Copyright © 2011-2022 走看看