mvc对学生表课程表连表查询代码
时间: 2023-07-09 20:27:03 浏览: 42
这是一个基于MVC模式的学生表和课程表连表查询示例代码:
Model(模型):
```python
class Student(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
gender = models.CharField(max_length=10)
...
class Course(models.Model):
name = models.CharField(max_length=50)
teacher = models.CharField(max_length=50)
...
class StudentCourse(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
score = models.FloatField()
```
Controller(控制器):
```python
def student_course(request):
student_id = request.GET.get('student_id')
student = Student.objects.get(id=student_id)
student_courses = StudentCourse.objects.filter(student=student)
courses = []
for sc in student_courses:
course = sc.course
course.score = sc.score
courses.append(course)
return render(request, 'student_course.html', {'student': student, 'courses': courses})
```
View(视图):
```html
<h3>{{ student.name }}的课程</h3>
<table>
<thead>
<tr>
<th>课程名</th>
<th>教师</th>
<th>成绩</th>
</tr>
</thead>
<tbody>
{% for course in courses %}
<tr>
<td>{{ course.name }}</td>
<td>{{ course.teacher }}</td>
<td>{{ course.score }}</td>
</tr>
{% endfor %}
</tbody>
</table>
```
在这个示例代码中,我们使用了三个模型类分别表示学生、课程和学生课程表。学生和课程之间是多对多的关系,通过学生课程表来建立关联。在控制器中,我们首先获取了传入的学生ID,然后通过该ID获取对应的学生对象,并通过学生对象获取其关联的课程对象列表。最后,我们将学生对象和课程对象列表传递给视图,由视图将其渲染出来。