Django - day01 快速回忆ORM操作
2024-10-17 20:58:59
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:\usr\PyCharm 2017.3.3\bin\runnerw.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='')可以查找满足两个条件的项
若查找的数据不存在会抛出异常
最新文章
- .Net Collection的一些理解——记录一次向实习生的答疑
- 单例模式读取properties配置文件中的信息
- JS-字符串操作-替换
- 怎样Zbrush 4R7中添加和删除SubTool
- gl.TexSubImage2D 使用遇到图片翻转的问题
- java应用程序远程登录linux并执行其命令(ssh jar包)
- php面向对象3
- 18.Llinux-触摸屏驱动(详解)
- 雅虎军规以及Chrome调试
- Linux的pwd命令详解
- 解决import模块后提示无此模块的问题
- 中间件详解,Django复习
- logging模块初识
- Hdoj 1213.How Many Tables 题解
- AngularJS中的$http缓存以及处理多个$http请求
- vue2+webpack 开发环境配置
- Android学习笔记五:四大组件(转)
- Integer.valueOf方法的源码解读
- [Axiom 3D]1.初识Axiom
- List去重复(List中存的是对象)