ORM编写步骤
连接数据库
无论是操作哪种数据库,基于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一起进步吧。