接下来就是创建一些HTML文件,套用模板,同时数据是定义在views.py中,代码如下
from django.shortcuts import render
from .models import Job, Cities, JobTypes
from django.template import loader
from django.http import HttpResponse
# Create your views here.
def joblist(request):
#从JOB class中使用内置函数.objects.order_by来读取数据库数据
job_list = Job.objects.order_by('job_type')
#载入 joblist.html 文件
template = loader.get_template('joblist.html')
#并向它传递一个上下文 context
context = {'job_list': job_list}
for job in job_list:
job.city_name = Cities[job.job_city][1]
job.job_type = JobTypes[job.job_type][1]
#最后返回生成HttpReponse
return HttpResponse(template.render(context))
顺便附带上前端的页面
{% extends 'base.html'%}
{% block content %}
小叮当的主页哦
{% if job_list %}
<ui>
{% for job in job_list %}
<li>{{job.type_name}} <a href="/job/{{job.id}}/" style="color:blue">{{job.job_name}}</a> {{job.city_name}}</li>
{% endfor %}
</ui>
{% else %}
<p>没内容</p>
{% endif %}
{% endblock %}
**然后现在有页面了还不够哦!需要去应用以及项目中去配置路由,也就是urls.py**<br />**这边遇到一个坑!**<br />**django 4.0 版本中,将url删除了! ,最后采用re_path代替!!!**<br />**附上代码**
from django.urls import re_path,include,path
from . import views
#代表正则匹配
urlpatterns = [
re_path(r"^joblist/", views.joblist, name="joblist")
]
from django.contrib import admin
from django.urls import path, re_path, include
urlpatterns = [
re_path(r"^", include('jobs.urls')),
path('admin/', admin.site.urls),
]