需要安装mysqlclient
模块,步骤见博客。
cmd命令进入数据库:mysql -u root -p
,输入密码。
创建数据库命令:create database xxx charset utf8;
。 一定要有分号;
才行。djangoLearn
Django的数据库操作手册。
在setting.py
文件夹中先注释掉之前的数据库语句,重新写以下语句:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'USER': 'root', # MySQL用户名
'PASSWORD': 'XXXXXX', # MySQL用户密码
'NAME': 'djangoLearn', # 数据库名称
'HOST': '127.0.0.1', # 哪个服务器安装的MySQL
'PORT': 3306, # 端口号
},
}
(1)在models.py
文件中创建一个类,即对应数据库中一个表。
from django.db import models
# Create your models here.
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
(2)执行命令创建该表
python manage.py makemigrations
python manage.py migrate
每次想创建一个新的表的时候,则重复上述步骤,再次执行这两个命令即可。
(3)进入cmd确定是否创建该表,命令:show tables from djangolearn;
(1)当需要删除这个表的时候,将需要删除的表对应在models.py
文件中的类直接注释掉。
(2)再次执行命令,即可:
python manage.py makemigrations
python manage.py migrate
查询结果如下,被删除掉了:
和删除表一样的操作,都是直接注释再执行上述命令语句。
age = models.IntegerField(default=22)
number = models.IntegerField(null=True, blank=True)
最后执行上述两条命令语句即可。
在view.py
文件中引入包:
from app01.models import Department, UserInfo
UserInfo.objects.create(name="小王", password="153")
UserInfo.objects.create(name="小王", password="163", age=10)
UserInfo.objects.create(name="张张", password="123", age=30)
Department.objects.create(departName="技术部")
UserInfo.objects.filter(id=5).delete() # 删除id=5的数据
Department.objects.all().delete() # 删除全部数据
注意,数据类型是列表中嵌套对象。
# 查询全部数据 列表[对象,对象,对象,...]
userList = UserInfo.objects.all()
for u in userList:
print(u.name, u.age, u.password)
# 查询某个数据 列表[对象]
userOne = UserInfo.objects.filter(name="张张").first()
print(userOne.name, userOne.age, userOne.password)
UserInfo.objects.filter(id=3).update(age=32, name="老王")