Django操作数据库

引入models的定义

from app.models import  myclass

class  myclass():

aa =  models. CharField (max_length=None) 

bb =  models. CharField (max_length=None) 

def __unicode__(self):

return self.aa

添加一行数据1

add = myclass(aa=‘wahaha‘,bb=‘hahawa‘ )

add.save() #不save无法保存到数据库

add.id #获取增加的这条数据的ID

添加一行数据2

myclass.objects.create(aa=‘wahaha‘,bb=‘hahawa‘)  # 同上1方法一样无需保存save

删除表中全部数据

myclass.objects.all().delete()

删除一条aa等于‘test‘的数据

myclass.objects.get(aa=‘test‘).delete()

删除多条数据

myclass.objects.filter(aa=‘123‘).delete() #过滤出aa字段等于123的都删除

查出库中所有条数的数据

myclass.objects.all()

查询带字段名的所有条数数据

myclass.objects.all().values()

查询单挑数据

myclass.objects.get(aa=‘123‘) #查询aa字段中是123的这条数据,如果是多条和没有的时候会报错,尽量结合try:except使用

查询匹配条件的多条数据

myclass.objects.filter(aa=‘123‘) #查询aa字段值为123的所有数据条数,括号的匹配条件可多个,以逗号分隔

模糊查询

myclass.objects .filter(aa__contains="1") #查询aa字段中值包含‘1‘的数据,例如aa字段值为 123 154 这两条都能匹配

根据字段内容排序后展示数据

myclass.objects.order_by(‘aa‘)  #根据aa字段的内容进行数据排序,会根据字母和数字排序

根据字段内容逆向排序后展示数据,加一个负号

myclass.objects .order_by(‘-aa‘ )  #根据aa字段的内容进行逆向数据排序,会根据字母和数字排序

连锁查询,先过滤,过滤后进行逆向排序

myclass.objects.filter(aa=‘123‘) .order_by("‐aa")

限制数据条数,相当于mysql limit

myclass.objects.filter(aa=‘123‘)[0]  #[0]显示第一条 [0:2]会显示前两条

myclass.objects.filter(aa=‘123‘).order_by("‐aa")[0] #切片不支持负数,这样就数据序列倒过来的第一条,也就是最后一条数据

更新数据

a = userinfo.objects.get(cellPhone=‘13133333333‘) #查询一条你要更新的数据

a.cellPhone=‘3111111111111‘   #赋值给你要更新的字段

a.save() #保存

更新多个字段或一个字段

myclass.objects .get(aa=‘123‘).update(aa=‘321‘,bb="wahaha") #update可多条

更新所有字段

myclass.objects.all().update(aa=‘8888‘) #更新所有字段,更新后会显示受影响的条数

时间: 2024-09-29 08:24:02

Django操作数据库的相关文章

django 操作数据库--orm(object relation mapping)---models

思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Entity Framework django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 三层架构 创建表 1.创建Model,之后可以根

django操作数据库增删改查

1.django初始化配置https://blog.51cto.com/yht1990/2382898 2.创建模型D:\mysite\polls\models.py from django.db import models class Publisher(models.Model): id = models.AutoField(primary_key=True) # 自增的ID主键 name = models.CharField(max_length=64, null=False) 3.建表

django操作数据库之查询F,Q操作 和 seach搜索功能

# F 使用查询条件的值 # # from django.db.models import F # models.Tb1.objects.update(num=F('num')+1) # Q 构建搜索条件 from django.db.models import Q # con = Q() # # q1 = Q() # q1.connector = 'OR' # q1.children.append(('id', 1)) # q1.children.append(('id', 10)) # q1

python中cursor操作数据库(转)

原文出处:http://doudouclever.blog.163.com/blog/static/175112310201284115340663/ python 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了.     操作步骤如下:    1.建立数据库连接     import MySQLdb     conn=MySQLdb.connect(host="loc

Django模型-数据库操作

前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开始,进入到了Django模型,也就是数据库操作. 自带 Sqlite3 数据库查询方式 为了简单,使用Python自带的Sqlite3数据库进行实例说明. 先看一个传统的数据库操作示例: 1 from django.shortcuts import render 2 import sqlite3 3

Django入门   数据库的ORM操作之一对多

Django对数据库的是通过ORM实现.什么叫做ORM呢?简单来说,我们通过sql语句查询一张表的所有数据的语句如下  select * from test.而Django中用到的表都是在models.py文件里定义.所以我们要查查询test表里的数据可以通过 test_obj = models.test.objects.all()来获取test表里所有数据的对象.再通过 test_obj.values()方法将每一行数据的里的各个字段以key和value的字典形式读取出来.这就叫ORM操作.

Django与数据库操作

Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArchemy (ORM) ORM 操作简单 (只把对象和类的操作 生成对应的sql语句) 创建,修改 数据表的时候简单 速度比原生的sql慢 -- 先转换成sql语句 原生sql执行会快 脚本运行Django的ORM操作数据库 import os,sys import django sys.path.ap

Django使用普通表单、Form、以及modelForm操作数据库方式总结

Django使用普通表单.Form.以及modelForm操作数据库主要应用于增删该查的情景下,流程通用如下,只是实现方式不一样: 进入填写表单页面: 在表单页面填写信息,并提交: 表单数据验证 验证成功,和数据库进行交互(增删改查): 验证成功,页面提示表单填写失败: 一.Django使用普通表单操作数据库 1.html代码: <form action="/add/" method="post" name="addbook"> {%

django操作多数据库

django操作多数据库 1. 在settings.py文件中配置多数据库 # Database # https://docs.djangoproject.com/en/2.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_test', 'HOST': '127.0.0.1', 'USER': 'root', 'PASSWORD':