首先要配置数据映射具体在这个连接里 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. C# Note15:设置Window图标的正确方式

    Windows Presentation Foundation(WPF)独立应用程序有两种类型的图标: 一个程序集(assembly) 图标,通过在应用程序的项目构建文件中使用<Applicat ...

  2. JUnit测试提示Java.lang.Exception: No runnable methods

    网上一大堆都说,没写@Test,或者是,导包错误,= =然而我并没有发现我有这个毛病 = =最后终于找到罪魁祸首 Junit版本太低!!! Junit版本太低!!! Junit版本太低!!! = =因 ...

  3. liunx 运维知识三部分

    一. 用户级用户组相关 二. 文件属性和链接知识及磁盘已满故障案例 三. 通配符 四. 特殊符号 五. 基础正则 六. 扩展正则 七. sed实践 八. awk实践

  4. Java多线程1:进程与线程的概念、区别和联系

    一.进程的的概念 引用线程之前进程的概念: 进程是表示资源分配的基本单位,也是调度运行的基本单位.例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括内存空间.磁盘空间.I/O设备等.然 ...

  5. PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ,you must purchase the retail version.

    PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ...

  6. js笔记2

    原型:prototype 和 __proto__ prototype 给他即将生成的对象继承下去的属性 prototype: 显式原型,每个function下都有prototype属性,该属性是一个对 ...

  7. 【python练习题】程序14

    #题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. #我的方法应该比网上的更加简洁,只是递归可能速度慢 n = input('请输入一个正整数:') n = int(n) X ...

  8. Javascript和Jquery语法对比总结

    目的 相信大家都知道jq是js的一个类库,是为了方便我们开发前端,但是笔者在刚开始学习js和jq时经常将两者的语法记混和混用,所以整理下两者实现相同功能之前的语法区别. 声明变量 javascript ...

  9. Git——快速安装Git及初始化配置【二】

    文档 https://git-scm.com/book/zh/v2 下载 mac https://git-scm.com/download/mac Linux https://git-scm.com/ ...

  10. 查询SQLSERVER中系统表结构

    Declare @TableName Varchar(20); SET @TableName='B_SupplierDA'; --SELECT TE.字段名+',' --FROM ( SELECT ( ...