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
浙公网安备 33010602011771号