Django - day01 Model的增删改查找
得益于Django的ORM模型,用面向对象的思想来操作数据库使得数据库的操作一切变得简洁了很多。
0. 建表
在应用下的models.py中建立一个表单如下:
class 表名(models.Model):
name = models.CharField(max_length=20,verbose_name='用户名')
email = models.EmailField(verbose_name='邮箱')
address = models.CharField(max_length=100,verbose_name='联系地址')
message = models.CharField(max_length=500,verbose_name='留言信息')
这里涉及到Django提供的类型,依次点击到模块models.fields中可以看到__all__变量,里面就存放着诸多Django支持的表项类型
接着输入以下命令在数据库中创建模型表单
python manage.py makemigrations 应用名称
python manage.py migrate
这里值得一提的是,在makemigrations后会生成一些文件,这些文件可以用来查看Django具体对数据库做了些什么操作。例如,在我修改address最大长度为120后,根据makemigrations的结果输入0002,得到的结果如下:
manage.py@django_start > sqlmigrate message 0002
"D:usrPyCharm 2017.3.3in
unnerw.exe" ...
BEGIN;
--
-- Change Meta options on user_message
--
--
-- Alter field address on user_message
--
ALTER TABLE `message_user_message` MODIFY `address` varchar(120) NOT NULL;
COMMIT;
Following files were affected
Process finished with exit code 0
具体如何实现的可以不管,但是要知道,Django这里提供了一个方式供你查看它做了什么,以及给了你一个让你修改的可能。
1. 增加、修改数据
还是ORM模型,首先得实例化:
test = user_message()
接着就像操作对象一样,操作这个表里的项:
test.name = 'Thisisname'
test.address='Thisisaddress'
test.email = 'Thisisemail'
test.message='Thisismessage'
或者是使用像cpp中构造函数的方式创建表:
test=user_message(name='lilei',email='1@163.com',address='what',message='')
然后是保存:
test.save()
2. 删除、查找数据
一样的思路,这里直接对数据库模块进行操作:
test = user_message.objects.get(id=1)
test.delete()
诸如此类的操作:
Question.objects.all()
Question.objects.get(id=1) 等价 Question.objects.get(pk=1)
Question.objects.filter(id=1,other='')可以查找满足两个条件的项
若查找的数据不存在会抛出异常