• ORM: object relationship mapping


    ORM: object relationship mapping
    
    关于数据库的两条命令:
    		python manage.py makemigrations
    		python manage.py migrate
    		数据库第一次配置必须完成数据库的迁移,执行上边的两条命令就好
    		
    表单的记录操作:
    	1、添加
    		obj = models.表名(**kwargs)
    		obj.save()
    		
    		models.表名.objects.create(**kwargs)
    		
    	2、修改
    		#方式一:
    		obj = models.表名.objects.filter(name="python")[0]
    		obj.name = "JAVA"
    		obj.save
    		
    		#方式二   update
    		models.表名.objects.filter(name="python").update(**kwargs)
    		
    	3、删除:
    		models.表名.objects.filter(name="python").delete()
    		
    	4、查询:
    		QuerySet集合对象:
    			models.表名.objects.all()
    			models.表名.objects.filter(**kwargs)
    			models.表名.objects.all().values(*args)
    			models.表名.objects.all().values_list(*args)
    			models.表名.objects.exclude(**kwargs)
    			models.表名.objects.order_by(*args)
    			models.表名.objects.distinct(*args)
    	 
    		model对象:
    			models.表名.objects.get(**kwargs)
    			models.表名.objects.filter(**kwargs).first()
    			models.表名.objects.filter(**kwargs).last()
    			models.表名.objects.filter(**kwargs).count()
    			models.表名.objects.filter(**kwargs).exist()
    
    
    关联表记录操作:
    	表关系:
    		1、一对一
    		2、一对多
    		3、多对一
    	添加记录:
    		一对多:
    			创建一对多:
    			publish = models.Foreignkey("Publish",related_name="bookList")
    			#添加记录方式1:
    			models.Book.objects.create(publish_id=1)
    			#添加的记录方式2:
    			pubObj = models.Publish.objects.filter(name = "人民出版社")[0]
    			models.Book.objects.create(publish=pubObj)
    		
    		多对多:
    		创建多对多关系:
    		authorlist = models.ManyToManyField("Author",related_name="bookList")
    		多对多添加记录:
    		book_obj = models.Book.objects.create(title="追风的人",price=100,publishDate="2017-12-12",publish_id=2)
    		alex_obj = models.Author.objects.filter(name="alex")[0]
    		egon_obj = models.Author.objects.filter(name="egon")[0]
    		
    	查询记录:
    		正向查询:
    			一对多:
    			linux_obj = models.Book.objects.filter(title="linux").first()
    			print(linux_obj.publish.name)  #与这本书对象关联的出版社的对象的名字
    			
    			多对多:
    			linux_obj = models.Book.objects.filter(title="linux").first()
    			print(linux_obj.authorlist.all())  #与这本书关联的所有的作者的对象集合
    		反向查询:
    			一对多:
    			eg:查找人民出版社出版过的书籍的名字
    			publist_obj = models.Publish.objects.filter(name="人民出版社")[0]
    			print(publist_obj.bookList.all())   #出版社书籍对象集合
    			
    			多对多:
    			eg:查找yuan出版过的素有书籍的名字和价格
    			author_yuan = models.Author.objects.get(name="yuan")
    			print(author_yuan.bookList.all())
    			与该作者关联的所有书籍的对象的集合
    			
    

      

  • 相关阅读:
    sys模块详解
    os模块详解2
    tyvj 1203 机器分配
    洛谷 P1496 火烧赤壁
    P1204 [USACO1.2]挤牛奶Milking Cows
    bzoj 2120 数颜色
    P2056 采花
    P1972 [SDOI2009]HH的项链
    9.20模拟赛
    P2709 小B的询问
  • 原文地址:https://www.cnblogs.com/52-qq/p/7744986.html
Copyright © 2020-2023  润新知