django-mysql表的增删改查
1.增加数据
调用该路由执行ModelsCaozuo的处理方法
第一种实例化类
class ModelsCaozuo(View):
''' 数据库增加数据 '''
def get(self, request):
article = Article()
article.title = "怎样添加一条表的数据,它拥有多个字段"
article.content = "实例化model,通过.attr赋值"
article.message = "使用django的save持久化数据"
article.save()
return HttpResponse("%s<br>%s<br>%s" % (article.title, article.content, article.message))
第二种不实例化
class ModelsCaozuo1(View):
''' 数据库增加数据 '''
def get(self, request):
Article(
title="添加数据不实例化,直接使用类",
content="",
message = "同样通过django的save持久化数据"
).save()
return HttpResponse("%s<br>%s<br>%s" % (Article.title, Article.content, Article.message)) # 取不到数据?
第三种新增数据
class ModelCaozuo2(View): def get(self, request):
Article.objects.create(title="大标题", content=datetime.now(), message='')
return HttpResponse('ojbk')
2.查询数据
Article.object.all() ; Article.object.get() ; Article.object.filter() ;Article.object.exclude()
查询Article表中所有数据 Article.object.all()
ps: 返回多条数据(Article的实例的集合, for in)
class ModelsCaozuo2(View):
''' 查询Article表数据的常用方法'''
def get(self, request):
content_all = Article.objects.all() # 可以切片 content_all[::] 不能使用负值切片
print content_all # QuerySet实例 列表 可 for in # <QuerySet [<Article: Article object>,
<Article: Article object>]
print content_all.values() # 返回字典形式的数据 ps:必须是QuerySet集合 [{'id':1,'name':'xiaoming'},{'id':2, 'name': 'xiaodong'}]
print content_all.count() # 数据条数 Article.object.latest('id') # latest根据字段id先进行排序,返回最后一条数据
Article.object.earliest('id') # earliest根据字段先排序,返回最久远的数据 Article.object.first() # 获取,默认排序的第一条数据。可根据order_by排序
Article.object.last() # 最后一条数据 # exact, iexact
Article.object.filter(id=1) # 查询id=1的数据
Article.object.filter(id__exact=1) # 等同上
Article.object.filter(id__iexact=1) # 等同上 但是忽略大小写
# contains, icontains
Article.object.filter(content__contains="a") # 字段content下,数据内容包含 “a”的所有数据
Artocle.object.filter(content__icontains="a") # 不包含“a”的数据
# in
Article.object,filter(id__in=[1,2,3]) # 判断字段id的值是否在列表中,是则获取出来 # gt大于, gte大于等于, lt小于, lte小于等于, startwith, istartwith忽略大小写, endwhith, iendwith忽略大小写
# range:区间查询
# null
Article.object.filter(age__null=True) # age字段为空的所有数据
return render(request, 'mysql_select.html', locals())
mysql_select.html 页面获取属性
<body>
{% for con in content_all %} 每一条表中数据对应一个Article类的实例con
{{ con.title }}<br>
{{ con.content }}<br>
{{ con.message }}<br>
{% endfor %}
</body>
查询Article表中单条数据 Article.object.get()
ps 只返回一条数据(所以只是返回单个Article实例),如果数据有多条或者没有 会报错
class ModelsCaozuo3(View):
''' 查询表的数据 '''
def get(self, request):
data1 = Article.objects.get(pk=1) # pk 通过主键查询
data2 = Article.objects.get(id=1) # id 通过id查询 一般id字段设置为主键
data3 = Article.object.exclude(id=1) # 过滤符合条件的数据,获取其它数据
data4 = Article.object.all().order_by('-id') # 通过id排序,"-"代表倒序
return render(request, 'mysql_select1.html', locals())
3.批量和单条删除数据
ps:没有查到数据 不会报错
class ModelsCaozuo4(View):
''' 批量和单条删除表数据 '''
def get(self, request):
Article.objects.filter(n=2).delete() # 删除Article中所有 字段n=2的数据
Article.objects.filter(id=11).delete() # 删除Article 字段id=11的单条数据
return HttpResponse('ojbk')
4.修改数据
class ModelsCaozuo5(View):
''' 批量和单条修改数据 '''
def get(self, request):
# 批量 把字段n=3的所有数据 的字段n,message改值
Article.objects.filter(n=3).update(n=4,message="把n从3改成4了")
# 单条 先get单条Article数据的实例 和批量删除格式不同
article = Article.objects.get(pk=6) # get如果有多条数据或者无数据 则报错,只返回一条数据
article.n = 3
article.save() # 记得save
return HttpResponse('ojbk')
django-mysql表的增删改查的更多相关文章
- $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境
在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...
- MySQL表的增删改查和列的修改(二)
一.使用Like模糊查找搜索前缀为以“exam_”开头的表名 show tables like 'exam_%' ; 语句结束符号是:也是用\G来表示 二.MySQL表的CRUD 2.1 创建表: C ...
- mysql表的增删改查
一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二.创建表 cr ...
- mysql 表的增删改查
一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 对于一张表来说,字段是必须要有的. 数据表 类似于excel id,name,qq, ...
- mysql 表的增删改查 修改表结构
四.修改表结构 语法: . 修改表名 ALTER TABLE 表名 RENAME 新表名; . 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 ...
- Django --- 单表的增删改查
- mysql 数据表的增删改查 目录
mysql 表的增删改查 mysql 表的增删改查 修改表结构 mysql 复制表 mysql 删除表
- django模型层 关于单表的增删改查
关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- Mysql数据表的增删改查
---恢复内容开始--- Mysql数据表的增删改查 1.创建表 语法:CREATE TABLE 表名(字段1,字段2,字段3.......) CREATE TABLE `users` ( `us ...
随机推荐
- css hover遮罩层
马上月底了, 这个月忙于工作和生活, 没有很好的写一篇博客, 有点忧伤. 为了弥补, 就写点简单的. 最近项目有个需求, 就是鼠标移入的时候显示一个层, 移除的时候这个层消失. 当然层是可以点击进行额 ...
- hdu1243 dp (类最长公共子序列)
题意:射击演习中,已知敌人出现的种类顺序,以及自己的子弹种类顺序,当同种类的子弹打到同种类的敌人时会得到相应分数,问最多能得多少分. 这题的题意很好理解,而且模型也很常见,是带权值的类最长公共子序列问 ...
- (研) int(*p)[10]; int *p[10]; int(*)[10]; 之间的区别
int *p[10]; 从这个最简单的说起 p先与后面的[4]结合,说明他本质是一个数组 ,“[]”的优先级比“*”要高.p先与“[]”结合,构成一个数组的定义,数组名为p,int *修饰的是数组的内 ...
- ORA-01791: not a SELECTed expression
Student表有3个字段:id,name,age 看这两个SQL语句 (1)select name from student order by id; (2)select distinct(name ...
- APP自动化测试各项指标分析
一.内存分析专项 启动App. DDMS->update heap 操作app,点几次GC dump heap hprof-conv转化 MAT分析 二.区分几种内存 VSS- Virtual ...
- FastAdmin composer json 版本说明
来源于 FastAdmin 执行 composer update 后将 ThinkPHP 升级到了 V5.1. FastAdmin 是基于 ThinkPHP 5.0.x 开发的,而 ThinkPHP ...
- 【转】每天一个linux命令(21):find命令之xargs
原文网址:http://www.cnblogs.com/peida/archive/2012/11/15/2770888.html 在使用 find命令的-exec选项处理匹配到的文件时, find命 ...
- vue-cli 中的静态资源处理
你会注意到在项目结构上我们有静态资源两个目录:src/assets 和 static/.它们之间有什么区别? 1. 通过webpack处理的资源 要回答这个问题,我们首先需要了解webpack如何处理 ...
- Python与机器学习
pandas里面的对于数据操作比如where,drop以及dropna等都会有一个属性:inplace,这个单词意思是原地,如果inplace=true代表数据本身要返回(原地数据也会被改变):如果i ...
- PLSQL使用SCN码恢复误删表数据
#查询数据库当前的SCN码select current_scn from v$database 1250494 #将当前的SCN码减小后,根据SCN码查询误删数据表的数据情况#直至找到被删的数据为止s ...