一、ORM
1、定义
(待完善)
2、操作步骤
1)根据类自动创建数据库表
①在model.py中写类
class UserInfo(models.Model):
username = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)
②在Teminal中执行以下两句代码
python manage.py makemigrations
python manage.py migrate
注:如果有多个app创建数据库时,出现选择app时在setting文件中INSTALLED_APPS设置
③通过以上就创建了数据库中的两个表:username和pwd
注:这是在pycharm中的自动使用默认的sqlite数据库,可以在setting文件下的DATABASE那里设置第三方数据库(以下有解释)
2)根据类对数据库表中的数据进行各种操作
①在view视图中通过函数对表进行增删改查,首先在view中导入模块
from app import models
②在view中定义函数进行操作
def orm(req):
models.UserInfo.objects.create(username='root',pwd='123')
return HttpResponse('ok')
③函数操作中对数据库表的多种操作(增删查改)
#增加数据
方式一:
models.UserInfo.objects.create(username='root',pwd='123')
方式二:
dic = {'username':'eric','pwd':'123'}
models.UserInfo.objects.create(**dic)
方式三:
obj = models.UserInfo(username='alex',pwd='123')
obj.save()
#查询数据
方式一:查询所有数据
result = models.UserInfo.objects.all()
print(result)
# result => QuerySet => Django => [] 是所有数据的集合,每行数据是一个对象
# <QuerySet [<UserInfo: UserInfo object (1)>, <UserInfo: UserInfo object (2)>,<UserInfo: UserInfo object (3)>]>
for row in result:
print(row.id,row.username,row.pwd)
# 1 root 123
# 2 alex 123
# 3 eric 123
方式二:依据条件查询
result = models.UserInfo.objects.filter(username = 'root')
# 这里是拿出的一行数据,返回是QuerySet的第一个对象
print(result)
for row in result:
print(row.id,row.username,row.pwd)
#删除数据
models.UserInfo.objects.all().delete()
models.UserInfo.objects.filter(username='alex').delete()
models.UserInfo.objects.filter(id='1').delete()
#更改数据
models.UserInfo.objects.all().update(pwd=456)
models.UserInfo.objects.filter(id=3).update(pwd=456)
二、数据库配置
1、MySQL数据库配置
在setting文件下操作;
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'dbname',
'USER':'root',
'PASSWORD':'xxx',
'HOST':'',
'PORT':'',
}
}
2、注意
Django默认使用MySQLdb模块链接MySQL
主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysqo.install_as_MySQLdb()