Django 快速开发实战
吕召刚
前大众点评搜索负责人
22705 人已学习
新⼈⾸单¥68
课程目录
已完结/共 76 讲
日常开发中常见的复杂场景:Django进阶开发实战 (22讲)
通往Hacker之路 (3讲)
Django 快速开发实战
登录|注册
留言
39
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 07 | 添加自定义页面:让匿名用户可以浏览职位列表页
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 初识Django:Django适合做什么?
04 | 用2个命令创建一个包含用户管理功能的后台
05 | 开始Django之旅 :10分钟如何创建一个可以管理职位的后台
06 | 产品体验优化:快速迭代完善应用
07 | 添加自定义页面:让匿名用户可以浏览职位列表页
08 | 添加自定义页面:让匿名用户可以查看职位详情
09 | 开始一个正式的产品:产品背景、迭代思维与MVP产品规划
10 | 唯快不破:在产品中使用产品迭代思维
11 | 数据建模 & 企业级数据库设计原则
12 | 创建应用和模型,分组展示页面内容
13 | 产品新需求:如何批量从Excel文件导入候选人数据(命令行工具)
14 | 产品体验优化:候选人列表筛选和查询
15 | 省去单独的账号管理工作:企业域账号集成
16 | 批量设置面试官:面试官的导入、授权
17 | 产品新需求 :如何导出候选人的数据到CSV(增加自定义的数据操作菜单)
18 | 如何记录日志方便排查问题
19 | 生产环境的配置如何管理更安全: 生产环境与开发环境配置分离
20 | 产品细节完善
21 | 定制更美观的主题
22 | 定制面试官权限
23 | 系统报错功能:钉钉群消息集成&通知一面面试官
24 | 允许候选人注册登录: 集成Registration
25 | 候选人简历存储:创建简历Model
26 | 让候选人可以在线投递简历
27 | 使用Bootstrap来定制页面样式
28 | 简历评估&安排一面面试官
29 | 定制列表字段,查看简历详情
30 | 遗留系统集成:为已有系统数据库生成管理后台
31 | Django的中间件(Middleware)
32 | 创建请求日志、性能日志记录中间件
33 | 在Django中支持多语言
34 | 错误和异常日志上报:Sentry集成
35 | 错误和异常日志上报:捕获异常上报到Sentry并发送钉钉群通知
36 | Django安全防护:防止XSS跨站脚本攻击
37 | Django安全防护:CSRF跨站请求伪造和SQL注入攻击
38 | Django Rest Framework开放API
39 | 在Django中使用缓存&Redis的使用
40 | Django与Celery 集成:Celery的使用
41 | Django与Celery集成:异步任务
42 | Django与Celery集成:定时任务
43 | 文件和图片上传功能
44 | 实践中的问题:多数据库路由
45 | Django之美:3 行代码支持大数据量的关联外键 (autocomplete_fields)
46 | Django之美:20行代码实现只读站点ReadOnlyAdmin
47| Django之美:10行代码自动注册所有Model到Admin管理后台
48 | Django之美:Signals信号及其使用场景
49 | Django之美:优雅的架构设计 - CSR架构总结之Celery
50 | Django之美:优雅的架构设计 - CSR架构总结之Sentry&Django Rest Framework
51 | Django之美:Django的常用插件
52 | 生产环境要注意哪些事项:生产环境的应用部署
53 | 应用水平扩展:使用负载均衡
54 | 让网站访问更快:使用CDN加速
55 | 让故障在第一时间被感知到:接入监控告警
56 | 生产环境中的安全:生产环境的安全设计
57 | 生产环境中的安全:应用安全
58 | 生产环境中的安全:架构安全
59 | 生产环境中的安全:数据安全
60 | 生产环境中的安全:密码安全与业务安全
61 | 云环境中的部署:Docker容器的基础用法
62 | 云环境中的部署:如何像分发集装箱一样发布应用
63 | 云环境中的部署:开发环境的容器化&构建小镜像
64 | 云环境中的部署:什么时候需要容器编排
65 | 云环境中的部署:阿里云上搭建Kubernetes集群
66 | 云环境中的部署:管理监控容器中的Django应用
67 | 云环境中的部署:应用日志收集与查询
68 | 云环境中的持续集成:CI/CD的工作流程
69 | 云环境中的持续集成:CI/CD的基本使用
70 | 快速迭代的价值与挑战
71 | 使用OOPD方法识别产品核心功能
72 | 如何做技术方案设计与工作拆解
73 | 如何保证交付质量和持续迭代
74 | 如何更高效地寻求帮助?
75 | 一名Hacker的成长之路
76 | 结束语
登录 后留言

全部留言(39)

  • 最新
  • 精选
蒋三折
太好了,老师说的非常详实,还有原代码对比,在CSDN还有极客报了好几个课程,到目前第一次能够体验了“跟上课程”的感觉,泪目( Ĭ ^ Ĭ ),谢谢老师。

作者回复: 遇到各种困难,还在持续地找方法学习,给你的坚持和努力点赞。 感谢你的反馈,既然做了这个课程,就把他做好,帮助想学习的同学掌握好。准备这个课程对我自己也是一个重新系统化深入学习的过程,准备的过程中收获也很多,随着对django了解的进一步深入,越来越惊叹 djngo 的强大优雅。 记得我刚开始学写代码的时候,也是遇到各种问题不知道从哪里入手,后来找到人帮助看问题,手把手带着入门,后来入门之后就自己独立探索各种技术了。课程的后面我会分享成长的过程。 如果课程对你有帮助,记得推荐到需要的人,也许对他们也有帮助

2020-10-26
2
6
Tempo
为什么评论都不回复

编辑回复: 感谢同学的反馈,我们会及时跟进老师的回复情况,回复在合同里有约定,是我们课程交付很重要的一环

2022-06-11
2
路客
老师,在views.py文件中 for job in job_list: job.city_name = Cities[job.job_city] job.type_name = JobTypes[job.job_type] 上边循环里头,两边的job是同一个对象么?

作者回复: 视频的 8:10 这个地方的两行代码有误。 看来需要一个勘误表。 代码在 11:31 的页面做了修复, 代码库的代码是正确的,这样应用: job.city_name = Cities[job.job_city][1] job.type_name = JobTypes[job.job_type][1]

2021-04-24
2
生花生
和老师代码一样 但是提示找不到joblist.html

作者回复: 视频的 03:44 加了 templates/joblist.html 的文件,确保这个加到代码库里了。 可以对比一下代码库。 https://gitee.com/geektime-geekbang/django

2021-04-22
4
潤士乐途
你好老师,我按照你写的html代码以及view.py,urls.py(两个),也重启了服务,但是打开joblist页面提示Server Error,可以打开admin页面,下面是我在本节新增改动的内容,麻烦你看看帮忙解答一下,谢谢. jobs/templates/base.html <!-- base.html --> <h1 style="margin:auto;width:50%;">字节科技开放职位</h1> <p></p> {% block content %} {% endblock %} jobs/templates/joblist.html {% extends 'base.html' %} {% block content %} 终于等到你,期待加入我们,用技术去探索一个新世界 {% if job_list %} <ul> {% for job in job_list %} <li>{{job.type_name}} <a href="/job/{{ job.id }}/" style="color:bule">{{ job.job_name }}</a> {{job.city_name}} </li> {% endfor %} </ul> {% else %} <p>No jobs are available.</p> {% endif %} {% endblock %} {% endblock %} jobs/urls.py from django.conf.urls import url from jobs import views urlpatterns = [ # 职位列表 url(r"^joblist/", views.joblist, name="joblist") ] jobs/views.py from django.shortcuts import render # Create your views here. from django.template import loader from django.http import HttpResponse from jobs.models import Cities, JobTypes from jobs.models import Job def joblist(request): job_list = Job.objects.order_by('job_type') template = loader.get_template('joblist.html') 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] return HttpResponse(template.render(context)) recruitment/urls.py from django.conf.urls import url, include from django.contrib import admin from django.urls import path, re_path from django.views.static import serve from recruitment.settings import STATIC_ROOT urlpatterns = [ url(r"^", include('jobs.urls')), path('admin/', admin.site.urls), re_path('static/(?P<path>.*)', serve, {'document_root': STATIC_ROOT}), ]

作者回复: 可以对比一下gitee上面的源码看看有什么差异

2021-04-11
Geek_7769cb
老师 我的html渲染城市和职位类型还是显示数字 是什么原因呢 views.py from Jobs.models import Job,JobType,JobCity from django.shortcuts import render from django.template import context, loader from django.http.response import HttpResponse # Create your views here. def joblist(request): job_list = Job.objects.order_by('job_type') template = loader.get_template('job_list.html') for job in job_list: job_city = JobCity[job.job_city][-1] job_type = JobType[job.job_type][-1] print(job) context = { 'job_list':job_list } return HttpResponse(template.render(context)) job_list.html {% extends 'base.html' %} {% block content %} 终于等到你,期待你的加入,一起去探索一个新的世界 {% if job_list %} <ul> {% for job in job_list %} <li>{{ job.job_type }} <a href="/job/{{ job.id }}" style="color: blue">{{ job.job_title }}</a> {{ job.job_city }}</li> {% endfor %} </ul> {% else %} <p>暂无开放的职位列表</p> {% endif %} {% endblock %}

作者回复: 你的索引是-1,确定是你要的吗

2021-03-15
沛⃰
吕老师为什么我第七课完全照着您的代码,可是最终页面并没显示职位的内容?只是显示了默认值

作者回复: 对比一下代码看看有什么差异

2021-03-07
chutianxia
老师您好,在最好的页面展示中我这边实际效果在在页面中并没能顺利输出职务内容,而是 输出了 “No jobs are available” 默认值。应该是job_list 的值没能顺利传入至html中。已经检查了python代码 views.py, 在文件里面是顺利取到了job_list. views.py from django.shortcuts import render # Create your views here. from django.shortcuts import render from django.http import HttpResponse from django.template import loader from jobs.models import Cities, JobTypes from jobs.models import Job def joblist(request): job_list = Job.objects.order_by('job_type') template = loader.get_template('joblist.html') context = {'lob_list': job_list} for job in job_list: job.job_type = JobTypes[job.job_type][1] print(job.job_type) job.city_name = Cities[job.job_city][1] print(job.city_name) return HttpResponse(template.render(context)) base.html <!--jobs/templates/base.html--> <!-- base.html--> <h1 style="margin:auto;width:50%;">招聘招聘</h1> <p></p> {% block content %} {% endblock %} joblist.html {% extends 'base.html' %} {% block content %} 终于等到你, 期待加入. {% if job_list %} <ul> {% for job in job_list %} {% comment %} <li>{{job.type_name}} <a href="/job/{{ job.id }}/" style="color:blue">{{ job.job_name }}</a> {{job.city_name}} </li> {% endcomment %} <li>{{job.type_name}} <a href="/job/{{ job.id }}/" style="color:blue">{{ job.job_name }}</a> {{job.city_name}} </li> {% endfor %} </ul> {% else %} <p>No jobs are available</p> {% endif %} {% endblock %}

作者回复: 看着context 那行拼写错了

2021-01-27
2
Fan
django 的自定义模版中写{%%},跟以前jsp一样,太难看了。写页面还是得用前端框架比较好。

作者回复: 这个看什么场景下用了。 django 的优势在于admin 后台。

2021-01-05
2
seraph
请问一下老师,为按照老师这个代码自己另外写了一个应用,大部分代码都是没变,只是有些变量和一些名称变了,但是在调用objects.order_by这个方法的时候出错,我写的那个class不能调用,提示local variable 'XXX' referenced before assignment.

作者回复: 变量没有定义

2020-12-29
收起评论