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 ...
随机推荐
- javap -v没有显示LocalVaribleTable
时隔多日,终于找到为什么javap -v .class文件没有LocalVariableTable出现 因为默认的javac编译没有生成相关的调试信息,这里我们可以通过javac -help查看指令帮 ...
- 一个简单jpa例子
package com.example.demo.entity; import javax.persistence.*; /*使用jpa注解配置映射关系*/ /*告诉jpa这是一个实体类和(数据表映射 ...
- Android——Service介绍与例子
官方定义:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行.另外,一个组件 ...
- IWMS后台上传文章,嵌入音频文件代码
<object width="260" height="69" classid="clsid:6bf52a52-394a-11d3-b153-0 ...
- todo项目总结
vue+webpack项目工程配置 1.vue-loader+webpack项目配置 2.webpack配置项目加载各种静态资源 3.webpack-dev-server的配置和使用 安装: pack ...
- epoch、 iteration和batchsize区别
转自: https://blog.csdn.net/qq_27923041/article/details/74927398 深度学习中经常看到epoch. iteration和batchsize,下 ...
- How to remove unwant Internet Explorer Context Menu
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
- undefined reference to `cv::VideoCapture
出现opencv链接的问题原因: 1. 路径设置不正确,caffe会优先搜索Makefile.config里面的环境设置 2. anaconda2装的opencv和配置的opencv路径不一致 比如, ...
- 一般服务器端口号的反斜杠表示访问webapp下的资源
- Qt QLineEdit
//lineEdit显示文字 QLineEdit *lineEdit = new QLineEdit(widget); lineEdit->setObjectName(QString()); l ...