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()
原文地址:https://www.cnblogs.com/Niuxingyu/p/10301010.html