• 网页编程-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 对象            
    

      

  • 相关阅读:
    Codeforces 1167E(思路、数据处理)
    Codeforces 185D(发现性质、欧拉定理)
    BUPT2017 springtraining(16) #4 ——基础数论
    Codeforces Round #404 (Div. 2)——ABCDE
    BUPT2017 springtraining(15) #3
    BUPT2017 springtraining(16) #3 ——搜索与动态规划
    BUPT2017 springtraining(16) #2 ——基础数据结构
    Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD
    BUPT2017 springtraining(16) #1 ——近期codeforces简单题目回顾
    Codeforces Round #400 (Div. 1 + Div. 2, combined)——ABCDE
  • 原文地址:https://www.cnblogs.com/crazytao/p/7765275.html
Copyright © 2020-2023  润新知