1.定义class类 导入models 模型
from django.db import models
# Create your models here.
class Subject(models.Model):
no = models.IntegerField(primary_key=True,verbose_name='编号')
name = models.CharField(max_length=20,verbose_name='名称')
intro = models.CharField(max_length=511,default='',verbose_name='介绍')
create_date = models.DateField(null=True,verbose_name='成立日期')
is_hot = models.BooleanField(default=False,verbose_name='热门程度')
def __str__(self):
return self.name
#内置类定义显示名称
class Meta:
db_table = 'tb_subject'
verbose_name = '学科'
verbose_name_plural = '学科'
2.“生成迁移”和“执行迁移”
(venv)$ python manage.py makemigrations vote
...
(venv)$ python manage.py migrate
3.注册后台管理admin.py
class RegisterAdmin(admin.ModelAdmin):
list_display = ('no','id','pwd','tel','mail')
admin.site.register(Register,RegisterAdmin)
4.使用Django提供的后台管理应用来添加学科和老师信息
from django.contrib import admin
from django.contrib.admin import ModelAdmin
from vote.models import Teacher, Subject
class SubjectModelAdmin(ModelAdmin):
"""学科模型管理"""
list_display = ('no', 'name')
ordering = ('no', )
class TeacherModelAdmin(ModelAdmin):
"""老师模型管理"""
list_display = ('no', 'name', 'gender', 'birth', 'good_count', 'bad_count', 'subject')
ordering = ('no', )
search_fields = ('name', )
admin.site.register(Subject, SubjectModelAdmin)
admin.site.register(Teacher, TeacherModelAdmin)
5.编写视图函数先实现页面 views.py
def show_subjects(request):
"""查看所有学科"""
subjects = Subject.objects.all()
return render(request, 'subject.html', {'subjects': subjects})
6.编辑模板页 django编辑
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学科信息</title>
<style>/* 此处略去了层叠样式表的选择器 */</style>
</head>
<body>
<h1>千锋互联所有学科信息</h1>
<hr>
<div id="container">
{% for subject in subjects %}
<dl>
<dt>
<a href="//www.greatytc.com/teachers?sno={{ subject.no }}">
{{ subject.name }}
</a>
</dt>
<dd>{{ subject.intro }}</dd>
</dl>
{% endfor %}
</div>
</body>
</html>
- 加载静态资源
使用{% load static %}指令来加载静态资源,我们将这段代码放在了页码开始的位置
创建assets文件夹,在该文件夹下又创建了三个文件夹:css、js和images
8.修改urls.py文件,映射用户请求的URL和视图函数的对应关系
from django.contrib import admin
from django.urls import path
from vote import views
urlpatterns = [
path('', views.show_subjects),
path('teachers/', views.show_teachers),
path('admin/', admin.site.urls),
]