野外泛在线考核系统(三)
二、笔记本端
接(二),继续完成Django的相关配置
(三)Django的配置
- 重新设置website的路径,因为原来的website在系统盘,而系统盘空间有限,决定将其转移到数据盘,便于后续放置上传的文件。就是直接复制过去,数据盘其实对应的是系统盘data这个文件夹
- 用Pycharm打开,可以直接运行
- 接着开始设计数据表,现在电子表格中进行设计,如图是ItemScore表的设计
- 接着将设计的表转化到Lesson/models.py文件中
class TotalScore(models.Model):
student = models.ForeignKey("Student", on_delete=models.CASCADE)
lesson = models.ForeignKey("Lesson", on_delete=models.CASCADE)
processScore = models.DecimalField(max_digits=5, decimal_places=2)
finalScore = models.DecimalField(max_digits=5, decimal_places=2)
totalScore = models.DecimalField(max_digits=5, decimal_places=2)
scoreDate = models.DateField()
class IitemScore(models.Model):
student = models.ForeignKey("Student", on_delete=models.CASCADE)
item = models.ForeignKey("Item", on_delete=models.CASCADE)
team = models.PositiveSmallIntegerField()
role = models.ForeignKey("Role", on_delete=models.CASCADE)
teacher = models.ForeignKey("Teacher", on_delete=models.CASCADE)
itemScore = models.DecimalField(max_digits=5, decimal_places=2)
itemDate = models.DateField()
class Item(models.Model):
itemLevel_choices = (
(0, "一级考核课目"),
(1, "二级考核课目"),
(2, "三级考核课目"),
(3, "四级考核课目"),
)
itemType_choices = (
(0, "A考核"),
(1, "B考核"),
)
itemID = models.CharField(max_length=32)
itemName = models.CharField(max_length=32)
itemLevel = models.SmallIntegerField(choices=itemLevel_choices)
itemType = models.SmallIntegerField(choices=itemType_choices)
itemWeight = models.DecimalField(max_digits=5, decimal_places=2)
lesson = models.ForeignKey("Lesson", on_delete=models.CASCADE)
class Student(models.Model):
gender_choices = (
(0, "女"),
(1, "男"),
)
studentID = models.CharField(max_length=32)
studentName = models.CharField(max_length=32)
studentGender = models.SmallIntegerField(choices=gender_choices)
studentPhoto = models.ImageField()
class Teacher(models.Model):
gender_choices = (
(0, "女"),
(1, "男"),
)
teacherID = models.CharField(max_length=32)
teacherName = models.CharField(max_length=32)
teacherGender = models.SmallIntegerField(choices=gender_choices)
teacherPhoto = models.ImageField()
class Lesson(models.Model):
lessonID = models.CharField(max_length=32)
lessonName = models.CharField(max_length=32)
lessonWeight = models.DecimalField(max_digits=5, decimal_places=2)
class Role(models.Model):
roleID = models.CharField(max_length=32)
roleName = models.CharField(max_length=32)
roleWeight = models.DecimalField(max_digits=5, decimal_places=2)
equip = models.ForeignKey("Equip", on_delete=models.CASCADE)
class Equip(models.Model):
equipID = models.CharField(max_length=32)
equipName = models.CharField(max_length=32)
equipPhoto = models.ImageField()
- 然后在命令行执行以下命令
$ python3 manage.py migrate # 创建表结构
$ python3 manage.py makemigrations Lesson # 让 Django 知道我们在我们的模型有一些变更
$ python3 manage.py migrate Lesson # 创建表结构
- 接下来在Lesson/views.py,插入数据和显示的数据
def add_Equip(request):
equip = models.Equip(equipID="001",equipName="冲锋衣",equipPhoto="菜鸟出版社")
equip.save()
return HttpResponse("<p>数据添加成功!</p>")
def list_Equip(request):
equip = models.Equip.objects.values_list("equipID", "equipName","equipPhoto")
print(equip)
print(equip[0][0], type(equip)) # 得到的是第一条记录的price字段的数据
content = {}
content['hello'] = equip[0][2]
return render(request, 'index.html', content)
- 修改Lesson/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
path('add_Equip', views.add_Equip),
path('list_Equip', views.list_Equip),
]
- 而后测试添加数据和显示数据的结果
到此,算是基本把数据库整差不多了,接下来继续完善其他设置