搜索
简帛阁>技术文章>django的ORM操作MySQL数据库

django的ORM操作MySQL数据库


1.配置

  在应用之前要先进行配置,因为生成django项目之后默认的数据库不是mysql

(1)配置数据库

修改settings文件中的DATABASES
默认的状态:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

可以看到默认的数据库是sqlite3,将其改为mysql,如下所示:

DATABASES = {
'default': {
    # 使用的数据库类型,python支持各种数据库
    'ENGINE': 'django.db.backends.mysql',
    # 注意,NAME是连接使用的数据库名称
    'NAME': 'stus',
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST': '127.0.0.1'
    }
}   

(2)建立数据模型

  在app下的models.py中进行修改
models文件中,已经为我们引入了models
在建立数据模型时继承自models.Model
根据需要给每个字段设置不同的Field,在数据库中就会表现为数据类型

from django.db import models

# Create your models here.

class LeaveWord(models.Model):
    ID = models.IntegerField(default=0,primary_key=True)
    name = models.CharField(max_length=20, null=False)
    email = models.EmailField(null=False, default='11111@qq.com')
    content = models.TextField(max_length=256)
    address = models.CharField(max_length=100, null=True, blank=True)

常见的参数

  • default 指定默认值
  • primary_key = True设置主键
  • null=’False’非空
  • max_length 长度,int默认为11
  • blank=True字段数据为空

(3)生成数据库变更文件

  打开run manage.py task执行makemigrations
  或在Terminal中输入python manage.py makemigrations
run manage.py task执行makemigrations

(4)执行migrate命令,即执行数据库变更文件

执行数据库变更文件
没有出现异常则此时数据表已经创建成功
  表名默认为”app名_数据模型类名”(通过class Meta的db_table可以更改),在数据库中可以查看到,
并且创建一些其他的数据表,是django其他模块所需的表

2. 应用

所做的一切无非都是为了基本的增删改查操作,只是不再需要直接写sql语句,而是通过对象的操作来映射到数据库。

(1)查询

需要引入models中我们建立的模型类,假设此时model是实例化后的对象
取值只需要 对象.属性名

  • model.object.all() 全部数据 返回一个列表queryset
  • model.order_by() 可以根据某个字段进行排序,默认为顺序,在这个字段前加上 - 则为倒序
  • model.object.get() 获取一个指定条件的对象
  • model.object.filter(id__dt = 1) 返回指定条件的对象,返回列表, 注意,大于:id__gt, 小于:id__lt,大于等于:id__gte,小于等于:id__lte

(2)修改

  修改的话就和对象属性的变更一样,查询到结果之后不管返回的是一个对象还是一个列表(列表中也是对象),都能直接 对象.属性名 进行更改,注意更改之后需要执行save()函数,以对变更做出提交和保存。

(3)添加

  添加一行数据在这里就是建立一个对象,添加的形式有三种:

  • 直接实例化一个model对象,给各个属性值进行赋值后,执行save函数保存。
  • create创建对象之后,会将对象信息直接保存到数据库
  • get_or_create 先获取是否有该数据,如果没有则添加,同样不需要

(4)删除

  删除的操作和修改一样基于查询后得到的对象
下面的语句删除了id为1的数据

model.objects.get(id=1).delete()
、oracle递归查询语句startwithconnectbyprior①给你一张表,表里面有主键id,以及该项父节点parent_id,查询出该表中所有的父子关系节点树?Oracle:start
1配置在应用之前要先进行配置,因为生成django项目之后默认数据库不是mysql(1)配置数据库修改settings文件中的DATABASES默认状态:DATABASES{default:{E
inux上,innodb使用异步IO子系统(nativeAIO)来对数据文件页进行预读和写请求。行为受到参数innodb_use_native_aio控制。默认是开启,且只是适用于linux平台,
第一步:下载mysql驱动cmd进入创建好django项目目录:使用命令pipinstallmysqlclient等待安装成功!第二步:在settingspy中配置mysql连接参数(没有mysql
下面介绍一下django增删改查操作:1、viewpy*coding:utf8*from__future__importunicode_literalsfromdjangohttpimportHttp
问题现象最近使用sysbench测试MySQL,由于测试时间较长,写了一个脚本按prepare>run>cleanup顺序在后台跑着。跑完后察看日志发现一个问题,MySQL服务错误日志
一、在settingspy中配置DATABASES{'default':{'ENGINE':'djangodbbackendsmysql',数据库引擎'NAME':'django',你要存储数据库名
DjangoMysql数据库连接前言一、基础配置1、确保服务器安装了mysql,两条命令都要执行。安装过程中需要输入初始化密码。2、配置django21settingspy文件22插入数据库表格
1配置(1)在settings中配置数据库DATABASES{default:{ENGINE:djangodbbackendsmysql,NAME:cat,数据库名USER:root,用户名PASS
Django项目目录下settingspyDATABASES{'default':{'ENGINE':'djangodbbackendssqlite3','NAME':ospathjoin(BASE_