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:区间查询

      start_date = datetime.date(2005, 1, 1)
      end_date = datetime.date(2018, 1, 1)
      Artucle.objects.filter(make_time__range=(start_date, end_date))
     # 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表的增删改查的更多相关文章

  1. $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境

    在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...

  2. MySQL表的增删改查和列的修改(二)

    一.使用Like模糊查找搜索前缀为以“exam_”开头的表名 show tables like 'exam_%' ; 语句结束符号是:也是用\G来表示 二.MySQL表的CRUD 2.1 创建表: C ...

  3. mysql表的增删改查

    一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二.创建表 cr ...

  4. mysql 表的增删改查

    一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 对于一张表来说,字段是必须要有的. 数据表 类似于excel id,name,qq, ...

  5. mysql 表的增删改查 修改表结构

    四.修改表结构 语法: . 修改表名 ALTER TABLE 表名 RENAME 新表名; . 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 ...

  6. Django --- 单表的增删改查

  7. mysql 数据表的增删改查 目录

    mysql 表的增删改查 mysql 表的增删改查 修改表结构 mysql 复制表 mysql 删除表

  8. django模型层 关于单表的增删改查

    关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  9. Django学习笔记(10)——Book单表的增删改查页面

    一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...

  10. Mysql数据表的增删改查

    ---恢复内容开始--- Mysql数据表的增删改查 1.创建表   语法:CREATE TABLE 表名(字段1,字段2,字段3.......) CREATE TABLE `users` ( `us ...

随机推荐

  1. explain结果字段说明

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...

  2. 20155229 2016-2017-2 《Java程序设计》第八周学习总结

    20155229 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章 NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以设定缓冲区 ...

  3. 原型设计 Axure8.1 软件注册码

    用户名:Koshy 注册码: wTADPqxn3KChzJxLmUr5jTTitCgsfRkftQQ1yIG9HmK83MYSm7GPxLREGn+Ii6xY

  4. test20181005 序列

    题意 考场30分 维护差值,考虑每次移动的变更,当前2-n位置上的差加1,1位置上的差减n-1. 然后要求的是绝对值的和,用吉司机线段树维护最大最小值.次大次小值. 期望复杂度\(O(n \log n ...

  5. 【转】每天一个linux命令(44):top命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进 ...

  6. MapReduce – 基本思路之推荐引擎

    理解MapReduce关键两个步骤: 首先是构想出结构的数据结构,这种数据结构可以支撑你的业务分析使用:是要理解这种模式的处理元素. 第二步,分析原始数据的结构是怎样的: 第三步,基于原始数据结构以及 ...

  7. 客户端用javascript获取grid的数据。

  8. winform 程序调用及参数调用

    调用程序: // 新轮廓 -> 调用轮廓扫描程序        private void toolStripMenuItem9_Click(object sender, EventArgs e) ...

  9. java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1$mcII$sp

    报错信息: Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFound ...

  10. jar包引用版本不一致引发的问题

    前几天升级了一个模块的小补丁后,现网出了个问题,调用一个底层接口,获取到的返回对象一直是空的.诡异的是该模块本次升级的补丁内容并不涉及这个接口相关的东西,或者也可以说,补丁就是改了极其简单的一行代码而 ...