前言
django的modles模块里可以新增一张表和字段,通常页面的操作都是源于数据库的增删改查,怎样通过django实现数据库的增删改查呢?
数据库新增数据
上一篇我们创建了ke24_user表,将use_name ="liushui",psw ="123456",mail = "1396923566@qq.com"
在urls同级目录下创建testdb.py 文件,创建add_user方法如下:
给上面创建的方法在urls.py创建一个访问路径。
打开终端命令行输入:
python manage.py runserver 0.0.0.0:8000
打开浏览器:ip:8000/add_user/ 进行访问显示用户创建成功
打开navicat 客户端,查看表格新增数据。
更新数据
如果想更新数据库里的数据,比如想把数据库里的用户 liushui 的psw更改为“654321”,在testdb.py 文件里,创建update方法。
python manage.py runserver 0.0.0.0:8000
打开浏览器:ip:8000/update_db/ 进行访问显示用户创建成功
打开navicat 客户端,查看表格新增数据。
删除数据
如果user表里面的某个用户数据不想要了,也可以删除数据
新urls.py新增访问路径
python manage.py runserver 0.0.0.0:8000
打开浏览器:ip:8000/delete_user/ 进行访问显示用户创建成功
打开navicat 客户端,数据删除成功。
查询数据库
比如我想查询数据库 liushui 对应的mail值
在urls.py同一目录的testdb.py脚本,继续写个select_psw函数
urls.py新增url访问地址
python manage.py runserver 0.0.0.0:8000
打开浏览器:ip:8000/select_mail/ 进行访问显示用户创建成功
打开navicat 客户端,查询成功。
查询相关总结:
通过objects这个模型管理器的 all() 获得所有数据行,相当于SQL中的SELECT * FROM
a = User.objects.all()
filter相当于SQL中的WHERE,可设置条件过滤结果
b = User.objects.filter(id=1)
获取单个对象
c = User.objects.get(id=1)
限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
d = User.objects.order_by('name')[0:2]
查询结果排序
e = User.objects.order_by("id")
上面的方法可以连着使用
f = User.objects.filter(name="runoob").order_by("id")