Django:ORM,数据库连接

ORM编写步骤

连接数据库

 注册app

 编写models类

 执行终端命令(映射数据库中的表)


连接数据库

无论是操作哪种数据库,基于ORM操作对象时,语法上都一致

1.安装MYSQL&连接数据库

2.手动创建数据库

3.配置settings

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db01',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'POST': 3306,
    }
}

注意:这里的参数名一定要大写(NAME,USER等) 

4.安装第三方库 

sqldb,pymysql,mysqlclient


数据库连接池

Django 本身并不直接支持数据库连接池,但可以通过第三方库来实现这一功能。连接池可以帮助减少数据库连接的开销,提高应用程序的性能,特别是在高并发的情况下。

1,pip install django-db-connection-pool,首先安装这个库

2,在 settings.py 设置引擎

DATABASE_DEFAULT = {
    # 'ENGINE': 'django.db.backends.mysql', # 原版
    'ENGINE': 'dj_db_conn_pool.backends.mysql', #dj_db_conn_pool版
    'NAME': '库名',
    'HOST': '127.0.0.1',
    'USER': '用户名',
    'PASSWORD': '密码',
    'PORT': '3306',
    'CONN_MAX_AGE': 0,    # 默认: 0  一个数据库连接的寿命,以秒为整数。使用 0 在每次请求结束时关闭数据库连接——这是 Django 的历史行为,使用 None 则是无限的持久连接。
    'OPTIONS': {
        'charset': 'utf8mb4',
        'connect_timeout': 30,  # 连接超时时间
    },
    'POOL_OPTIONS': {   # dj_db_conn_pool的参数
        'POOL_SIZE': 1,
        'MAX_OVERFLOW': 11,
        'RECYCLE': 60,
    }
}

 注册app

编写setting.py中的INSTALLED_APPS,


 编写models类

from django.db import models

class Student(models.Model):
    name = models.CharField(max_length=16)
    age = models.IntegerField()

根据自己的需求写


 执行终端命令(映射数据库中的表)

python manage.py makemigrations ,找到所有已注册的app的model文件,生成migration配置文件

python manage.py migrate ,根据配置文件转换成sql语句,提交到数据库进行操作

此时,数据库的表结构就构造成功了。

创建实例对象

在视图函数中,根据需要创建对象。

#view视图函数
from django.shortcuts import render,HttpResponse
from app01.models import Student

def index(request):
    #创建
    Student.objects.create(name='大帅逼',age=21)

    #读取
    res = Student.objects.all()

    print(res)
    return HttpResponse('返回')

urls,路由分发

from django.urls import path

from app01 import views

urlpatterns = [
#     path('admin/', admin.site.urls),
    path('index/', views.index, name='index')
]

 运行后,数据库就将实例对象储存了。

本人也处于学习阶段,若有错误与不足请指出,关注DPT一起进步吧。 

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我DPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值