Django 数据库常见操作
首先要配置数据映射具体在这个连接里 https://www.cnblogs.com/Niuxingyu/p/10296143.html
Django 建立数据库模型
#导包导入django数据库类
from django.db import models #建立数据库类
class User(models.Model):
#主键 通过参数声明主键
id = models.IntegerField(primary_key=True)
#用户名 字符串类型需要声明长度限制
username = models.CharField(max_length=255)
#密码
password = models.CharField(max_length=255)
#这个class名必须为Meta 声明表名
class Meta:
#必须和数据库中的表名吻合
db_table = 'user'
建立完成后导包前需要在settings.py配置文件里把自己的文件夹添加到django应用内
#已安装的django应用 INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#将自己的应用,填充到配置文件中去
'mysite'
]
建立完成后就可以直接导包调用了
#导图自定义的数据库模型
from mysite.models import User #定义首页视图方法
def index(request):
# 建立实例
# user = User(username="新用户",password="root")
#入库操作(增)
# user.save() #删除数据(删)
# User.objects.filter(username="xin'y").delete() #修改数据(改)
# user = User.objects.get(id=2)
#修改
# user.username = "123"
#保存修改
# user.save() #修改数据(改) 第二种方式
# User.objects.filter(id=4).update(password="新密码") #查询全部数据 翻译为 select * from user; all()返回的是list
res = User.objects.all()
# print(res) #查询限定条件的数据 翻译为 select * from user where username = "新用户" and逻辑使用多个参数传递
res = User.objects.filter(username="新用户",password="新密码")
# print(res) #只取一条 翻译 select * from user where id = 1
res_one = User.objects.get(id=2)
# print(res_one) #排除条件 翻译 select * from user where username != '新用户'
res = User.objects.exclude(username='新用户') #定制字段显示 翻译 select password from user where name = '新用户'
res_s = User.objects.filter(username="新用户").values('password') # print(res_s) #排序 翻译为 select * from user orderby id asc 倒序使用 reverse()
res = User.objects.order_by('password').reverse() #去重 翻译为 select distinct(username) from user where username = '新用户'
res_dis = User.objects.filter(username="新用户").values('username').distinct()
# print(res_dis) #去数量 翻译为 select count(*) from user
res_count = User.objects.filter(username="新用户").count()
print(res_count) return render(request,'d4_index.html',locals())
使用原生sql(开发时不建议使用因为原生语句在开发时每个人有每个的写法和喜欢工作交接时会有麻烦)
#导图connection模块用来修改或者删除操作
from django.db import connection # 建立试图方法
def index(request): #执行原生sql语句 raw方法内,可以写任意的sql语句
#使用raw方法只能用来查询
res = User.objects.raw(' select * from user limit 1 ')
#对raw对象进行格式化 需要注意:使用raw原生sql,返回结果集和传统orm方法有区别
res = list(res)
print(res) #定义游标对象用来执行sql语句
# with connection.cursor() as c:
# c.execute("update user set password='666' where id=4 ")
# 跟上行代码一样两种写法
# connection.cursor().execute("update user set password='766' where id=4 ")
#进行删除操作
# with connection.cursor() as c:
# c.execute("delete from user where id=6")
# 跟上行代码一样两种写法
# connection.cursor().execute("delete from user where id=7") #入库操作 时间类型
#实例化对象
#这里使用了获取当前时间 from datetime impost datetime
# user = User(username="测试",password="123",time=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# user.save()
Django 数据库常见操作的更多相关文章
- Django 数据库进阶操作
基本操作 # 增 # # models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.T ...
- Redis缓存数据库常见操作
Jedis的最为常见的操作.主要包括常用的列表(list).集合(set).有序集合(sorted set).哈希表(hash)等数据结构,以及其他特性支持. 参考资料:http://hello-ni ...
- MySQL数据库常见操作
数据库连接与关闭:mysql -h 服务器主机地址 -u 用户名 -p 用户密码 创建新用户并授权:grant 权限 on 数据库.数据表 to 用户名@登录主机 identified by &quo ...
- Django数据库相关操作
首先,在settings.py中加入应用的名称,让数据库知道使用的是哪个应用,然后给那个应用创建表. 在settings.py中配置数据库相关参数,默认使用sqlite3不用配置 编辑models.p ...
- mongodb数据库安装及常见操作
客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...
- Django 数据库操作
Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...
- django数据库操作和中间件
数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...
- Django数据库操作
刚学到Django的数据库操作,把它记录下来,方便以后查看: 在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增.删.改.查) 1.定义3个数据库表: class Gro ...
- 从命令行运行django数据库操作
从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...
随机推荐
- 模仿jdk编译代码去除注释,多行注释
package com.jachs.mvc; import java.*; import ch.qos.logback.classic.net.SyslogAppender; /**** * * @a ...
- java学习之—链表(1)
/** * 单链表操作 * Create by Administrator * 2018/6/14 0014 * 下午 2:05 **/ public class Link { public int ...
- layer弹层基本参数初尝试
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- python之对字符串类型的数组求平均值
该字符串是在网页表格中复制的,所以数字间由制表符间隔,先将其转换成列表,再进行统计计算.代码如下: str = "-18.1 -18.3 -18 -18.2 -18 -17.4 -18 -1 ...
- Lodop“对象不支持SET__LICENSES属性或方法”SET__LICENSES is not a function”
Lodop中的方法如果书写错误,就会报错:“对象不支持XXX属性或方法”调试JS会报错”SET__LICENSES is not a function” LODOP.SET_LICENSES是加注册语 ...
- css居中小技巧
一.行内元素-水平居中 在父元素的样式中添加: text-align:center; 二.定宽块级元素-水平居中 所谓定宽块级元素指块级元素的宽度指定,而不是默认的100%,否则此方法无效: 代码: ...
- 【题解】Hanoi
题目描述 有三根柱A,B,C.在柱A上有N块盘片,所有盘片都是大的在下面,小片能放在大片上面.并依次编好序号,现要将A上的N块片移到C柱上,每次只能移动一片,而且在同一根柱子上必须保持上面的盘片比下面 ...
- [BZOJ 2083] [POI 2010] Intelligence test
Description 霸中智力测试机构的一项工作就是按照一定的规则删除一个序列的数字,得到一个确定的数列.Lyx很渴望成为霸中智力测试机构的主管,但是他在这个工作上做的并不好,俗话说熟能生巧,他打算 ...
- BZOJ1565[NOI2009]植物大战僵尸——最大权闭合子图+拓扑排序
题目描述 Plants vs. Zombies(PVZ)是最近十分风靡的一款小游戏.Plants(植物)和Zombies(僵尸)是游戏的主角,其中Plants防守,而Zombies进攻.该款游戏包含多 ...
- Tmutarakan Exams URAL - 1091(莫比乌斯函数 || 容斥)
题意: 求1 - s 中 找出k个数 使它们的gcd > 1 求这样的k个数的对数 解析: 从每个素数的倍数中取k个数 求方案数 然后素数组合,容斥一下重的 奇加偶减 莫比乌斯函数的直接套模 ...