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 ...
随机推荐
- 莫烦scikit-learn学习自修第二天【算法地图】
1. 算法地图
- 跨站请求伪造和cookie伪造
CSRF(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站 ...
- QTP 自动化测试--定义变量
1 Dim suffixsuffix=get_currentdatetxt("001")
- C#,单元测试
C#,单元测试入门(以下内容可能来自网络) 一.什么叫单元测试(unit testing)? 是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体 ...
- How to proof Pi
可以把圆想象成一个无限增大角的正多边形,通过倍角公式即勾股定理进行迭代. sin2x=2sinxcosx
- .NET Core 2.0及.NET Standard 2.0 Description
NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 ...
- codeforces749B
Parallelogram is Back CodeForces - 749B 已知平行四边形的三个顶点,求第四个顶点可能的位置.Input输入有三行,每行包括两个整数x和y ( - 1000 ≤ x ...
- Nginx 决策浏览器缓存是否有效
expires指令是告诉浏览器过期时间 syntax:expires [modified] time; eopch | max | off; default : off context :http,s ...
- 基本排序算法[python实现]
冒泡排序 原理 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换, ...
- 洛谷P1501 Tree II
LCT 还是LCT的板子,下放标记和那道线段树2一样,先放乘..之前用char忘记getchar,调了好久... 注意开long long!! #include <bits/stdc++.h&g ...