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. systemd学习笔记

    一.systemd介绍 systemd即为system daemon,是linux下的一种init软件与多数发行版使用的System V风格init相比,systemd采用了以下新技术: (1) 采用 ...

  2. dgraph cluster docker-compose 安装

    dgraph 是一款基于golang 的图数据库,使用了graphql+ 的查询方式 集群的安装官方也提供了对应的模版,比较简单 docker-compose 文件 我做了一些简单修改(数据存储的问题 ...

  3. Oracle 基础知识入门

    前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...

  4. 【转】每天一个linux命令(56):netstat命令

    原文网址:http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的 ...

  5. 修改oracle系统参数spfile导致数据库无法启动解决

    错误示范: SQL> alter system set nls_date_format='yyyy-mm-dd 24hh:mi:ss' scope=spfile;System altered.我 ...

  6. OAuth 2.0:Bearer Token、MAC Token区别

    Access Token 类型介绍 介绍两种类型的Access Token:Bearer类型和MAC类型 区别项 Bearer Token MAC Token 1 (优点) 调用简单,不需要对请求进行 ...

  7. JUC集合之 ArrayBlockingQueue

    ArrayBlockingQueue介绍 ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列. 线程安全是指,ArrayBlockingQueue内部通过"互斥锁&qu ...

  8. ZedGraph 柱状图、饼图、折线图演示源码

    http://code1.okbase.net/codefile/ZedGraphControl.ContextMenu.cs_201211225626_97.htm // //This librar ...

  9. FineUI 3升级4.1.1时,SingleClickExpand属性改什么了? (树控件单击展开)

    private Tree InitTreeMenu(List<Menu> menus) { Tree treeMenu = new Tree(); treeMenu.ID = " ...

  10. [转]触发窗体事件(例如按Esc关闭窗体),WinForm

    设置窗体属性KeyPreview=True. private void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyData == Ke ...