首先要配置数据映射具体在这个连接里 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 数据库常见操作的更多相关文章

  1. Django 数据库进阶操作

    基本操作 # 增 # # models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.T ...

  2. Redis缓存数据库常见操作

    Jedis的最为常见的操作.主要包括常用的列表(list).集合(set).有序集合(sorted set).哈希表(hash)等数据结构,以及其他特性支持. 参考资料:http://hello-ni ...

  3. MySQL数据库常见操作

    数据库连接与关闭:mysql -h 服务器主机地址 -u 用户名 -p 用户密码 创建新用户并授权:grant 权限 on 数据库.数据表 to 用户名@登录主机 identified by &quo ...

  4. Django数据库相关操作

    首先,在settings.py中加入应用的名称,让数据库知道使用的是哪个应用,然后给那个应用创建表. 在settings.py中配置数据库相关参数,默认使用sqlite3不用配置 编辑models.p ...

  5. mongodb数据库安装及常见操作

    客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...

  6. Django 数据库操作

    Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...

  7. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

  8. Django数据库操作

    刚学到Django的数据库操作,把它记录下来,方便以后查看: 在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增.删.改.查) 1.定义3个数据库表: class Gro ...

  9. 从命令行运行django数据库操作

    从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...

随机推荐

  1. 老男孩python学习自修第十五天【常用模块之time】

    例如: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import time if __name__ == "__main__": pr ...

  2. MySQL——基础操作

    参考博客:http://www.cnblogs.com/wupeiqi/articles/5713315.html 1.创建用户.授权(默认root,密码为空) 创建: create user 'al ...

  3. linux按时间查询日志

    在系统应用集中部署的时候,很多日志因为太多难以定位,获取某段时间的日志是对运维人员非常关键的事情. 一.sed查看某时间段到现在的系统日志: sed  -n  '/May 20 17/,$p'   / ...

  4. Upload Files In ASP.NET Core 1.0 (Form POST And JQuery Ajax)

    Uploading files is a common requirement in web applications. In ASP.NET Core 1.0 uploading files and ...

  5. x = x &(x-1)

    判断一个数(x)的二进制含有几个1 int func(x) { ; while(x) { countx ++; x = x&(x-); } return countx; } 假定x = 999 ...

  6. LitJson的用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 微信小程序——部署云函数【三】

    部署login云函数 不部署的话,点击获取openid会报错,报错如下 解决方案呢,很明显的已经告诉我们了 搭建云环境 开通 同意协议 新建环境 每个小程序账号可以创建两个免费环境 确定 部署后再次请 ...

  8. windows查看进程占用并强制结束进程

    打开命令提示符(CMD) 查看8080端口被哪个进程占用了,命令:netstat   -ano|findstr 8080 上面的8080端口的PID是30160,可以根据PID可以杀死这个进程,用下面 ...

  9. miller——rabin判断素数

    我们首先看这样一个很简单的问题:判定正整数\(n\)是否为素数 最简单的做法就是枚举\(2\)到\(n\)的所有数,看是否有数是\(n\)的因数,时间复杂度\(O(n)\) 稍微优化一下发现只要枚举\ ...

  10. 【XSY2707】snow 线段树 并查集

    题目描述 有\(n\)个人和一条长度为\(t\)的线段,每个人还有一个工作范围(是一个区间).最开始整条线段都是白的.定义每个人的工作长度是这个人的工作范围中白色部分的长度(会随着线段改变而改变).每 ...