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