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 ...
随机推荐
- Maven配置dubbo环境简单例子
环境准备: 1.zookeeper:zookeeper-3.4.6版本 2.maven:apache-maven-3.3.9版本 3.dubbo监控工具:dubbo-admin-2.5.4-SNAPS ...
- t添加最佳视口
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- web 资源好文
https://www.jianshu.com/p/e065aadf8daa : 五年 Web 开发者 star 的 github 整理说明
- JVM 加载class文件的原理
PS:类的装载过程是ClassLoader,只有把类 加载 到 JVM后才能运行: PS:两种加载类的方式: 显示:new 隐式:class.forname() PS:动态的执行,用到谁,加载谁:
- PDF文本框更改字体大小
在Adobe Acrobat Professional 7.0版本后里单击所插入的文本框,会出现文本框属性,此时只能改文本框的属性,不能修改文本框内的字体大小 要改字体很简单,左键选中要改的文本,按 ...
- 转 update关联更新在sqlserver和oracle中的实现
sqlserver和oracle中实现update关联更新的语法不同,都可以通过inline view(内嵌视图)来实现,总的来说sqlserver更简单些. 测试例子如下: create table ...
- 【转】【iOS】动态更换App图标
原文网址:http://www.cocoachina.com/ios/20170619/19557.html 前言 动态更换App图标这件事,在用户里总是存在需求的:有些用户喜欢“美化”自己的手机.至 ...
- python之 利用字典与函数实现switch case功能
Python不像C/C++,Java等有switch-case的语法.不过其这个功能,比如用Dictionary以及lambda匿名函数特性来替代实现. 字典+函数实现switch模式下的四则运算:( ...
- docker 里面的supervisord不断killed
这个原因就一般是百度上大家说的,内存不足啦 但是死也得死个明白 用这个命令 dmesg | egrep -i -B100 'killed process' 看一下就知道了 我的是docker限制了内存 ...
- laravel获取参数
测试url如下 http://127.0.0.1:8888/testApp/public/testInput?aaa=1&bbb=2 测试代码 Route::get('/testInput', ...