django学习笔记之ORM入门

django为数据库的使用提供一种新的方式,关系对象映射(ORM)

  • 创建表
  • 操作表

一、创建表

首先需要在app目录下的models.py文件中创建类和字段,models.Model是必须要传入的参数:

class User(models.Model):
    age = models.IntergerFiled()
    name = models.CharField(max_length=10)#字符长度

然后执行两个命令

Python manage.py makemigrations
python manage.py migrate

要注意需要在settings.py文件下先注册app,不然不知道应该将数据库的修改信息写入到哪一个app的migrations文件下面。

类创建好之后,我们以后就可以通过对类的操作从而进行表的增删改查

 

二、操作表

增加字段(models.类名.objects.create):

models.User.objects.create(name='qianxiaohu',age=18)
或者: dic = {'name': 'xx', 'age': 19} models.User.objects.create(**dic)
还可以:
obj = models.User(name='qianxiaohu',age=18)
obj.save()

 删除某一个字段(models.Users.objects.filter(条件).delete():

models.User.objects.filter(id=1).delete()

 修改(models.objects.filter().update()):

models.User.objects.filter(id__gt=1).update(name='alex',age=84)
ic = {'name': 'xx', 'age': 19}
models.User.objects.filter(id__gt=1).update(**dic)#__gt表示大于

 查询-->filter

models.User.objects.filter(id=1,name='root')
models.User.objects.filter(id__gt=1,name='root')#__gt表示大于
models.User.objects.filter(id__lt=1)#小于
models.User.objects.filter(id__gte=1)#大于等于
models.User.objects.filter(id__lte=1)#小于等于
			
models.User.objects.filter(id=1,name='root')
dic = {'name': 'xx', 'age__gt': 19}
models.User.objects.filter(**dic)

外键:

外键:
			class UserType(models.Model):
				caption = models.CharField(max_length=32)
		      id  caption
			# 1,普通用户
			# 2,VIP用户
			# 3, 游客
				
			class User(models.Model):
				age = models.IntergerFiled()
				name = models.CharField(max_length=10)#字符长度
				# user_type_id = models.IntergerFiled() # 约束,
				user_type = models.ForeignKey("UserType",to_field='id') # 约束,
		
			  name age  user_type_id     
			# 张扬  18     3
			# 张A扬 18     2
			# 张B扬 18     2

  

 

 

 

posted @ 2018-05-31 17:18  水如如  阅读(119)  评论(0编辑  收藏  举报