django 与数据库通过models.py 交互
从模板导入对象
from app.models import Grade, Student
from django.utils import timezone
from datetime import *
创建对象
grade1 = Grade()
grade1.gname = "python01"
grade1.gdate = datetime(year=2019, month=5, day=21)
grade1.gnum = 60
grade1.save()
Grade.objects.all()
修改models.py Grades 类的print输出
def __str__(self):
return "%s班级-%s人" %(self.name, self.num)
Grade.objects.all()
添加数据
from app.models import Grade, Student
from django.utils import timezone
from datetime import *
grade2 = Grade()
grade2.name = "python02"
grade2.date = datetime(year=2019, month=5, day=22)
grade2.num = 30
grade2.save()
grade2
查询数据
Grade.objects.get(pk=2)
修改数据
grade2.num = 50
grade2.save()
grade2
删除数据
grade2.delete() 注意:物理删除,数据库中表里的数据被删除
关联对象
建立学生表格
stu1 = Student()
stu1.name = "sunlin"
stu1.gender = True
stu1.age = 27
stu1.info ="这是一个好同学"
stu1.grade = grade1
stu1.save()
获得关联对象的集合
stu2 = Student()
stu2.name = "linux"
stu2.gender = True
stu2.age = 28
stu2.info ="这是一个好同学"
stu2.grade = grade1
stu2.save()
grade1.students_set.all()
创新新的学生对象,添加到新的班级
stu3 = grade1.students_set.create(name="frank",gender=True,info="I am frank",age=16)
PS:直接添加到数据库中,不需要save
启动服务
格式
- python manage.py runserver ip:port
ip可以不写,不写默认代表本机
端口号默认8000
python manage.py runserver
站点管理
概述
内容发布
负责添加、修改、删除内容
配置Admin应用
在settings.py 文件中的INSTALLED_APPS 中添加'django.contrib.admin'
创建管理员用户
执行<python manage.py createsuperuser>依次输入用户名、邮箱、密码创建超级管理员
配置
中文选项: settings.py LANGUAGE_CODE = 'en-us' 改为 LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'UTC' 改为 TIME_ZONE = 'Asia/Shanghai'
注册模型
from .models import Grade, Student
admin.site.register(Grade)
admin.site.register(Student)
属性模型
列表页属性
list_display = ['pk', 'name', 'date', 'num', 'isDelete']
list_filter = ['name']
search_fields = ['name']
list_per_page = 50
× list_display : 显示字段 × list_filter: 过滤字段 × search_fields: 查找字段 × list_per_page: 每页数量
添加和修改页属性
class GradeAdmin(admin.ModelAdmin):
# 列表页属性
list_display = ['pk', 'name', 'date', 'num', 'isDelete']
list_filter = ['name']
search_fields = ['name']
list_per_page = 50
# 添加、修改页属性
# fields = ['num', 'name', 'age', 'date']
fieldsets = [
('num', {"fields":['num', 'isDelete']}),
('base',{"fields":['name', 'date']}),
]
fields: 属性的先后顺序 fieldsets: 给属性分组 注意:fieldsets 与fields不能同时使用