功能
1.创建\删除\修改数据库中的表(不用sql语句),但是不能创建dataabses;
2.更简便的insert,select,group by
首先
1.创建数据库
2.
DATABASES ={
'default':{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangotest', #DB的名字
'USER': 'root',
'PASSWORD': 'Xiaoxiao5501',
'host': '127.0.0.1',
'port':''
}
}
3.
from django.db import models
class userinfo(models.Model):
name = models.CharField(max_length=32)
pswd = models.CharField(max_length=32)
age = models.integerfield()
这个是orm命令,即创建一个表,其中name为varchar最大32位,pswd为varchar最大为32位,age为int
首先app是需要在setting中
然后在终端中执行
python manage.py makemigrations
python manage.py migrate
然后再自己创建的database中会创建表
最后就会创建这些表
|app01_userinfo |
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
想要增加新的表和或者删除表,则再models中新建一个class
class ???(models.Model):
???
???
想要删除表,直接注释掉
每次进行更新,都需要运行makemigrations和migrate
但是注意,如果需要更新新的列,需要设定默认为空,或者设置新的default值
例如age=models.integerfield(null=true,blank=true) //可以默认为空
如果在括号内什么也不写,则pycharm会提醒你进行操作,是否设置默认值
新增数据
在models中写入
???.objects.create (列名称="???")
找到类,添加数据.
删除数据
??.objects.filter(判定条件).delete()
或者
???.objects.all().delete()
删除的逻辑是前面先筛选,后面是.delete()
获取数据
???.objects.all() 这实际上是queryset类型
可以通过一个变量来获取列表内数据,如果只是单纯的print出来,获取的不是列表中的数,而是一个数据行对象,它会显示 ???object (1);???object(2);...
所以可以通过循环打印输出数据
例如
data=userinfo.objects.all()
for obj in data:
print(obj.id,obj.name,obj.password,obj.age)
这样就可以在pycharm终端里面查看数据了
也可以进行条件查询
???.objects.filter(查询条件)
也可以只获得一个对象内的第一行数据
???.object.filter().first
更新数据
???.objects.filter(判定条件).update(???=???) 条件更新
???.objects.all.update(???=???) 全部更新