需修改settings.py中配置数据库的连接信息DATABASE如下所示
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': '482185',
'PORT': '3306',
'HOST': 'localhost',
'NAME': 'day02_1',
}
}
mysql -u root -p
create database XXX charset=utf-8;
pip install pymysql
import pymysql
pymysql.install_as_MySQLdb()
在文件models.py下定义一个模型类
一个模型类在数据库中对应一张表,在模型类中定义的属性,对应模型对照表中的一个字段
from django.db import models
# Create your models here.
class Student(models.Model):
stu_name = models.CharField(max_length=6)
stu_sex = models.BooleanField()
stu_birth = models.DateField()
stu_delete = models.BooleanField(default=0)
stu_create_time = models.DateField(auto_now_add=True)
stu_operate_time = models.DateField(auto_now=True)
stu_tel = models.CharField(max_length=11)
class Meta:
db_table = 'stu02_1'
注意:如果提示no changes detected, 可以将数据库中的表django_migrations中为appname的字段
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(max_length=10)
sex = models.BooleanField()
class Meta:
db_table = 'student'
admin管理后台的url
在model中定义数据库,其中的性别,男的存1,女的存0。
class Student(models.Model):
stuname = models.CharField(max_length=20)
studex = models.BooleanField()
stubirth = models.DateField()
stutel = models.CharField(max_length=255)
class Meta:
db_table = 'student'
python manage.py makemigrations
python manage.py migrate
方法1:
stu = Student()
stu.stuname = stuname
stu.stusex = sex
stu.stubirth = birth
stu.stutel = tel
stu.save()
方法2:
Student.objects.create(stuname=stuname, stusex=sex, stubirth=birth, stutel=tel)
使用all()方法获取所有的数据
Student.objects.all()
Student.objects.filter(stusex=0)
或者
Student.objects.exclude(stusex=1)
其中:
filter():返回符合条件的数据
exclude():过滤掉符合条件的数据
Student.objects.all().order_by('-id')
其中:
order_by(‘id’):表示按照id升序的排列
order_by(‘-id’):表示按照id降序的排列
get():返回一个满足条件的对象。如果没有返回符合条件的对象,会应该模型类DoesNotExist异常,如果找到多个,会引发模型类MultiObjectsReturned异常
first():返回查询集中的第一个对象
last():返回查询集中的最后一个对象
count():返回当前查询集中的对象个数
exists():判断查询集中是否有数据,如果有数据返回True,没有返回False
Student.objects.filter(stubirth__gte='1980-01-01', stubirth__lte='1990-01-01')
Student.objects.filter(stuname__contains='王')
Student.objects.filter(stuname__startswith='王')