python测试开发django-13.操作数据库(增删改查)
前言
django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢?
本篇详细讲解django操作mysql数据库
新增数据
接着前面数据库User表创建成功后,如果我们在页面上注册用户的话,就需要在User表新增一条数据
比如,我们想在User表插入一组数据 user_name=yoyo5, psw=555555
在urls.py同一目录(helloworld/helloworld/testdb.py)新建一个testdb.py脚本
# helloworld/helloworld/testdb.py
from django.http import HttpResponse
from hello.models import User
# 新增数据
def add_user(request):
test1 = User(user_name='yoyo5',
psw="55555")
test1.save()
return HttpResponse("yoyo5用户创建成功!看去看看吧")
urls.py新增url访问地址
from django.conf.urls import url
from django.urls import re_path, path
from hello import views
from . import testdb
urlpatterns = [
# 新增用户
url(r'^register$', testdb.add_user),
]
浏览器输入http://localhost:8000/register,就会看到页面显示:yoyo5用户创建成功!看去看看吧
查询数据库,会发现hello_user表新增了一个yoyo5的数据
更新数据
如果需要修改数据库的某个数据,比如我想把yoyo5用户的psw改成999999
在urls.py同一目录(helloworld/helloworld/testdb.py)的testdb.py脚本,继续写个update_psw函数
# helloworld/helloworld/testdb.py
from django.http import HttpResponse
from hello.models import User
# 更新数据
def update_psw(request):
# 修改其中一个user_name='yoyo5'的字段,再save,相当于SQL中的UPDATE
test2 = User.objects.get(user_name='yoyo5')
test2.psw = '999999'
test2.save()
# 另外一种方式
# Test.objects.filter(id=1).update(name='Google')
# 修改所有的列
# Test.objects.all().update(name='Google')
return HttpResponse("<p>密码修改成功</p>")
urls.py新增url访问地址
from django.conf.urls import url
from django.urls import re_path, path
from . import testdb
urlpatterns = [
# 新增用户
url(r'^register$', testdb.add_user),
url(r'^update$', testdb.update_psw),
]
浏览器输入http://localhost:8000/update,就会看到页面显示:密码修改成功
查询数据库,会发现hello_user表yoyo5的psw对应的值修改了
删除数据
如果user表里面的某个用户数据不想要了,也可以删除数据
# 删除数据
def delete_user(request):
# 删除user_name=yoyo1的数据
test3 = User.objects.get(user_name='yoyo1')
test3.delete()
# 另外一种方式
# Test.objects.filter(id=1).delete()
# 删除所有数据
# Test.objects.all().delete()
return HttpResponse("<p>删除成功</p>")
urls.py新增url访问地址
from django.conf.urls import url
from django.urls import re_path, path
from . import testdb
urlpatterns = [
# 新增用户
url(r'^register$', testdb.add_user),
url(r'^update$', testdb.update_psw),
url(r'^delete$', testdb.delete_user),
]
浏览器输入http://localhost:8000/delete,就会看到页面显示:删除成功
查询数据库,会发现hello_user表yoyo1对应的数据清除了
备注:要是表里面没这个数据,会报错:User matching query does not exist.
查询数据
比如我要查询user表里面yoyo用户对应的mail的值
在urls.py同一目录(helloworld/helloworld/testdb.py)的testdb.py脚本,继续写个update_psw函数
# 查询数据
def select_mail(request):
# 方法1 可以查询单个结果直接获取mail值
m = User.objects.get(user_name='yoyo').mail
# 方法2 filter相当于SQL中的WHERE,可设置条件过滤结果
# test4 = User.objects.filter(user_name='yoyo')
# 查询结果是list,取下标后,获取mail字段的值
# m = test4[0].mail
return HttpResponse("<p>查询结果:%s</p>" % m)
urls.py新增url访问地址
from django.conf.urls import url
from django.urls import re_path, path
from . import testdb
urlpatterns = [
# 新增用户
url(r'^register$', testdb.add_user),
url(r'^update$', testdb.update_psw),
url(r'^delete$', testdb.delete_user),
url(r'^mail$', testdb.select_mail),
]
浏览器输入http://localhost:8000/mail,就会看到页面显示:查询结果:283340479@qq.com
关于查询
通过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")
django交流QQ群:779429633
python测试开发django-13.操作数据库(增删改查)的更多相关文章
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- NX二次开发-NX访问SqlServer数据库(增删改查)C#版
版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...
- Django-Model操作数据库(增删改查、连表结构)
一.数据库操作 1.创建model表 基本结构 1 2 3 4 5 6 from django.db import models class userinfo(models.M ...
- Django基础之数据库增删改查
Django中生成多个APP,每个APP下都有自己models模块,避免了多个APP之间数据的相互影响. 1.首先在APP的models下创建一个类 class UserInfo(models.Mod ...
- phpcms 操作数据库 增删改查
数据库的其他类继承的都是libs/class/model.class.php 这里面有写好的操作数据库的常用方法 1.增 insert($data, $return_insert_id = false ...
- 使用django连接数据库 对数据库 增删改查
如果路由访问的时候出现 就把项目中的注释掉 登录功能 1 路由访问如果不加斜杠 会内部自动重定向加斜杠的路由 所有的静态文件(css,js,前端第三方类库)默认都放在static文件下 #静态文件配置 ...
- MongoDB学习day04--NodeJs操作数据库增删改查
一.在Nodejs中使用Mongodb Nodejs需要引入的包 npm install mongodb --save -dev 或者使用镜像 cnpm install mongodb --save ...
- java操作数据库增删改查的小工具1--TxQueryRunner
在java程序中,一般使用jdbc连接数据库,比较麻烦,在看传智教程时学了一个工具类,用于简化与数据库之间的操作步骤,就是TxQueryRunner,他是QueryRunner的子类,用起来和他是一样 ...
- Django之ORM数据库增删改查
总结:ORM的 查.增.删.改 - 查 - client - 有一个展示页面(xxx_show.html) - 这一个页面一输入执行后,get请求向server端发送 - 这个展示页面有添加按钮.删除 ...
- JavaWeb学习记录(七)——MVC操作数据库增删改查与分页功能
一.分页工具类 package blank.util;import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; ...
随机推荐
- mavean项目的jar位置的影响
由于项目的数据库需求改变了,有mysql数据库变为oracle的,那么对于项目就是需要改变数据库连接池.这个项目运用了mavean框架,那么下载jar在pom.xml文件中填写就可以了,但是oracl ...
- SSL证书链说明
SSL证书链说明 1. SSL证书链定义 证书颁发机构(CA)共分为两种类型:根CA和中间CA.为了使SSL证书被信任,该证书必须由设备所连接的可信存储库CA颁发. 如果该证书不是由受信任CA,该链接 ...
- 003 RequestMapping——Ant路径
一: 1.介绍 Ant风格资源地址支持3中配配符 ?:匹配文件名中的一个字符 * :匹配文件名中的任意字符 **:匹配多层路径 2.RequestMapping支持的Ant风格的路径 二:程序说明 ...
- ubuntu下Sprak(IDE)wordcount例子
一.进入IDE界面 cd ~/Downloads/idea/bin idea.sh 二.建立scala项目 Step 1:导入Spark-hadoop对应的包,次选择“File”–> “Proj ...
- P3905 道路重建
P3905 道路重建我一开始想错了,我的是类似kruskal,把毁坏的边从小到大加,并且判断联通性.但是这有一个问题,你可能会多加,就是这条边没用,但是它比较小,你也加上了.居然还有10分,数据也是水 ...
- python全栈开发之正则表达式和python的re模块
正则表达式和python的re模块 python全栈开发,正则表达式,re模块 一 正则表达式 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的 ...
- BZOJ.3994.[SDOI2015]约数个数和(莫比乌斯反演)
题目链接 \(Description\) 求\[\sum_{i=1}^n\sum_{j=1}^md(ij)\] \(Solution\) 有结论:\[d(nm)=\sum_{i|d}\sum_{j|d ...
- hiho1269 优化延迟 ([Offer收割]编程练习赛1)
一道中文题,就不用翻译了. 大意是讲,一串数字,可以按照输入的先后顺序扔到一个固定大小的缓冲池子里,这个池子里的数输出顺序随意.然后计算—— SP=1*Pi1+2*Pi2+3*Pi3+...+N*Pi ...
- 图的基本操作(基于邻接表):图的构造,深搜(DFS),广搜(BFS)
#include <iostream> #include <string> #include <queue> using namespace std; //表结点 ...
- bzoj 2209 括号序列
反转操作 + 翻转操作 = 对称操作 因为上面三个操作都是自己的逆操作,所以我们只需要实现对称操作和反转操作,就可以搞定翻转操作. #include <cstdio> #include & ...