1.目录结构
2.配置mydjango/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 模板目录在基础目录下的templates下
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
3.路由分发mydjango/urls.py
from django.contrib import admin
from django.urls import *
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')), #默认匹配,搜索myapp.urls文件
]
4.路由myapp/urls.py
from django.contrib import admin
from django.conf.urls import url, include, re_path
from django.urls import path
from .views import *
urlpatterns = [
path('index/', hello),
path('grades/', grades),
re_path('(\d+)/', detail), # 正则表达式要用re_path
]
5.数据myapp/models.py
from django.db import models
# Create your models here.
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=100)
idDelete = models.BooleanField(default=False)
# sgrade = models.ForeignKey('Grades', on_delete=models.CASCADE()) #报错1
sgrade = models.ForeignKey('Grades', on_delete=models.CASCADE)
6.视图myapp/views.py
from django.shortcuts import render
# Create your views here.
from django.shortcuts import HttpResponse
from .models import *
def hello(request):
return HttpResponse("hello world")
# 接收网页上传过来的索引
def detail(request, num):
return HttpResponse("detail.....%s" % num)
def grades(request):
gradesList = Grades.objects.all()
# 模板路径:'myapp/grades.html' 传递的数据{'grades': gradesList} 其中key为模板里面用的变量
return render(request, 'myapp/grades.html', {'grades': gradesList})
7.模板templates/myapp/grades.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>班级信息</title>
</head>
<body>
<h1>班级</h1>
<ul>
<!--grades是传过来的变量-->
{%for grade in grades%}
<li>
<a href="#"> {{grade.gname}}</a>
</li>
{%endfor%}
</ul>
</body>
</html>