模板继承
目录结构如下:
├── app
│ ├── __init__.py
│ ├── models.py
│ ├── routes.py
│ └── templates
│ │ ├── base.html
│ │ ├── about.html
│ ├── static
│ │ ├── css
│ │ ├── images
│ │ └── js
├── manage.py
├── migrations
└── venv
templates下新增了base.html作为父模板,创建好统一的样式,使用 {% block content %}
和 {% endblock %}
作为占位符。
base.html父模板代码如下:
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="../static/css/main.css">
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
<script src="../static/js/main.js"></script>
<title>大熊课堂</title>
<style>
.nav-item {
padding-left:20px;
}
</style>
</head>
<body>
<!-- 导航栏开始 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="/">
<span style="padding-left:5px">大熊课堂</span>
</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav" style="margin:0 30px">
<li class="nav-item">
<a class="nav-link" href="#">首页 </a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">全部课程</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#">关于我们</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0" method="get" action="">
<input name="keyword" class="form-control mr-sm-2" type="search" placeholder="根据课程名称查询" aria-label="根据课程 名称查询">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" style="color:white;">
<button class="btn btn-outline-success" >
登录
</button>
</a>
</li>
</ul>
</div>
</nav>
<!-- 导航栏结束 -->
{% block content %}
{% endblock %}
<!-- 底部信息开始 -->
<div class="footer">
<div class="footer-left" >
<p>大熊课堂是一家专注职业技能提升的在线学习机构。</p>
<ul>
<li>关于我们</li>
<li>联系我们</li>
<li>帮助中心</li>
</ul>
</div>
<div class="footer-right">
<img height="120px" width="120px" src="../static/images/qrcode.jpg">
<p>关注微信公众平台</p>
</div>
<div class="footer-right">
<img height="120px" width="120px" src="../static/images/qq.png">
<p>关注大熊课堂QQ群</p>
</div>
<div>
<p style="text-align:center;clear:both">©2015-2019 大熊课堂 版权所有</p>
</div>
</div>
<!-- 底部信息结束 -->
</body>
</html>
about.html子模板继承父模板,代码如下:
{% extends 'base.html' %}
{% block content %}
<style>
body {
background-color: #eee;
}
.list-group-item.active {
z-index: 2;
color: #fff;
background-color: #28a745;
border-color: #28a745;
}
.tab-pane {
background-color: white;
padding: 10px;
border-radius: 5px;
padding: 10px 20px;
}
h2 {
font-size: 20px;
line-height: 40px;
}
h3 {
font-size: 17px;
line-height: 36px;
}
h4 {
font-size: 15px;
line-height: 32px;
}
b {
font-weight: bold;
}
</style>
<div class="container">
<div class="row" style="padding:10px">
<div class="col-4">
<div class="list-group" id="list-tab" role="tablist">
<a class="list-group-item list-group-item-action active" id="list-home-list" data-toggle="list" href="#list-home" role="tab" aria-controls="home">关于我们</a>
<a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="list" href="#list-profile" role="tab" aria-controls="profile">联系我们</a>
<a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="list" href="#list-messages" role="tab" aria-controls="messages">帮助中心</a>
</div>
</div>
<div class="col-8">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="list-home" role="tabpanel" aria-labelledby="list-home-list">
<div id="about-box">
<div>
<div><h2 class="tabtit" id="">
关于我们</h2>
<div class="about_content j-aboutContent" id="auto-id-1568271697068"><p id="auto-id-1568271697069">
云课堂,是网易公司倾力打造的在线实用技能学习平台,该平台于2012年12月底正式上线,主要为学习者提供海量、优质的课程,课程结构严谨,用户可以根据自身的学习程度,自主安排学习进度。云课堂的宗旨是,为每一位想真真正正学到些实用知识、技能的学习者,提供贴心的一站式学习服务。</p>
<div class="b-20"></div>
立足于实用性的要求,云课堂精选各类课程,与多家权威教育、培训机构建立合作,课程数量已达10000+,课时总数超100000,涵盖实用软件、IT与互联网、外语学习、生活家居、兴趣爱好、职场技能、金融管理、考试认证、中小学、亲子教育等十余大门类,其中不乏数量可观、制作精良的独家课程。从用户生活、职业、娱乐等多个维度,为用户打造实用学习平台。
<div class="b-20"></div>
云课堂目前拥有Web端、移动端(Android、iOS)。<br><br>
<h3>特色板块</h3>
<p><b>微专业</b><br>微专业是由网易云课堂联合各领域知名专家,以就业为导向,直达企业具体刚需岗位而精心打造的职业培训方案,解决传统教育与社会需求脱节的问题,让学员快速、全面地掌握相关技能 ,并获得工作机会。按要求完成学习,考试通过可获得专业认定证书,令你求职或加薪多一份独特优势。
</p><br>
<p><b>系列课程</b><br>将某一领域的内容进行打包并有序地呈现,给用户提供完整的、有体系的学习方案。解决用户有计划学习某项技能,但是又不知道应该如何开始学起的问题,同时能够让学员快速、全面地掌握相关知识点。
</p><br>
<p><b>题库</b><br>题库是云课堂为各类热门考试的考生研发的题目类学习模块。目前用户可参加公务员、建筑师、会计等多类考试的真题练习测试,并参与题目的分析讨论。同时,题库会和相应考试类课程、学习计划有机整合,完整辅助考生整个备考过程。
</p><br><h4>特色功能</h4>
<p><b>笔记</b><br>云课堂笔记功能为视频学习做了专门设计。学习者添加笔记时会自动保存视频的当前时间点,回顾笔记时就可观看当时视频。学习者还可以对视频截图或上传本地图片保存到笔记当中,
使得保存老师的板书、重要信息更快捷。学习者可将笔记公开,也可评论、收藏他人笔记,加强了用户间学习交流。</p><br>
<p><b>进度管理与学习监督</b><br>云课堂更关注用户个人学习的效率和效果。学习者学习过程中,云课堂支持自动\手动标记课时完成状态,或标记为“重要\有疑问”等,以便用户回顾和把控学习进度。另外,用户可设置课程的学习时间安排,云课堂会定期发送提醒通知用户。
</p><br>
<p><b>问答</b><br>学习者在学习过程中可随时提问。云课堂会根据问题内容将问题呈现给相关学习者或讲师,帮助用户快速获得答案。</p></div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile-list">
<div class="about_con j-aboutCon f-bg f-pr f-cb" data-type="2" id="auto-id-1568271698685">
<h2 class="tabtit" id="auto-id-1568271697075">联系我们</h2>
<div class="about_content j-aboutContent f-richEditorText edueditor_styleclass_0 edueditor_styleclass_1"
id="auto-id-1568271697076"><p id="auto-id-1568271697079"><strong id="auto-id-1568271697078"><span
id="auto-id-1568271697077" style="font-size: 14px;">客户服务</span></strong><span
id="auto-id-1568271697081" style="font-size: 14px;">( 包含:功能问题、开课咨询、投诉建议、使用帮助 )</span><strong><span
style="font-size: 14px;">: </span></strong></p>
<p><strong><span style="font-size: 14px;"><br></span></strong></p>
<p id="auto-id-1568271697083"><span id="auto-id-1568271697082" style="font-size: 14px;"> 电子邮件:study@service.netease.com</span>
</p>
<p><span style="font-size: 14px;"> 联系电话:0571-89853416 </span></p>
<p><span style="font-size: 14px;"> 在线客服:点击云课堂任意课程页面或本页面右下侧 “耳机状” 图标即可进入</span></p>
<p><span style="font-size: 14px;"> 工作时间:周一至周日 09:00-22:00 (春节假期除外)</span></p>
<p><span style="font-size: 14px;"><br></span></p>
<p><span style="font-size: 14px;"> <em>客服提醒:为了更快帮您解决问题,请在邮件中留下电话、云课堂账号、昵称、订单号、截图等信息,并尽可能详细地描述问题。</em></span><span
style="font-size: 14px; text-decoration: underline; color: rgb(102, 102, 102);"><em>课程相关服务请在课程页面联系课程提供方进行咨询。</em></span>
</p>
<p><br></p>
<p><strong><span style="font-size: 14px;">讲师入驻/合作: </span></strong></p>
<p><span style="font-size: 14px;"> 讲师入驻入口:<a href="https://study.163.com/cp/introduction.htm"
target="_blank">点击提交</a></span></p>
<p><span style="font-size: 14px;"> 合作咨询微信:jzeqing</span></p>
<p><span style="font-size: 14px;"> 讲师服务邮箱:study.partner@service.netease.com</span></p>
<p><br></p>
<p><strong><span style="font-size: 14px;">课程审核与视频转码:</span></strong></p>
<p><span style="font-size: 14px;"> 电子邮件:studyshenhe@163.com</span></p>
<p><span style="font-size: 14px;"> 请在邮件中备注开课机构的的名称、课程名称以及联系方式,并详细描述所遇到的问题,我们会尽快帮你解决。</span>
</p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"></span></p>
<p><span style="font-size: 14px;"><br></span></p>
<p><strong><span style="font-size: 14px;">联系地址: </span></strong></p>
<p><span style="font-size: 14px;"> 公司地址:浙江省杭州市滨江区网商路399号</span></p>
<p><span style="font-size: 14px;"> 邮政编码:310052</span></p>
<p style="margin-bottom: 0px;"><span
style="font-size:14px;font-family:'Arial',sans-serif;color:#666666;background:white"></span></p>
</div>
</div>
</div>
<div class="tab-pane fade" id="list-messages" role="tabpanel" aria-labelledby="list-messages-list">
<div class="con j-tabcon">
<h2>讨论区使用规则</h2>
<b>第一部分:总述</b>
<br>1.
讨论区是以课程为单位创建的、供每个课程师生交流的专属功能区。每个讨论区默认包括综合讨论区和老师答疑区两个分区。<br>2.
机构、讲师、版主、普通学生等均可使用讨论区,其中机构、讲师、版主除常规使用外还需承担管理职责。<p></p><br>
<p><b>第二部分:宗旨与原则</b><br>1. 讨论区以方便本课程的师生和生生交流为核心宗旨。<br>2. 为使讨论区更好地达成交流宗旨,需要所有成员认同并履行如下原则:<br> (1)尊重为本,友善沟通。每个参与者均需认同:在此互动的是与你一样爱学习的人,你需要给予别人与你希望获得的同样的尊重。友善为沟通第一原则,切勿恶意攻击他人。<br> (2)鼓励为主,关注进步。每个参与者都是在学习成长中的个体,有自己的长处,也有自己的不足,其学习的目的就是为了让自己变得更好。如果你发现有人在某方面表现的不尽如人意,请伸手帮助他努力提升,而不是嘲笑和讽刺他人。<br> (3)明确表达,有效互动。凝炼准确的表达是思路清晰的表现,如果帖子过长且模糊,你可能需要先把自己的思路整理清楚,再试图和别人互动。<br> (4)鼓励干货,杜绝广告。你创建或转发的学习经验、思考、提问、创意都能激发同学思考,并在课程内容外获得新的提升。你可以通过此方式探索分享的快乐。然而强硬的广告会破坏讨论氛围甚至引发同学反感,请检视自己的行为。
</p><br>
<p><b>第三部分:管理</b><br>1. 讨论区由课程开设机构、讲师和版主共同行使管理职责。<br>2. 每名管理人员需至少每两日登录一次,履行管理职责。<br>3.
讨论区的日常管理包括但不限于:<br> (1)使帖子在合适的版块<br> (2)核对帖子内容,奖励内容优质的用户发帖,惩罚违规发帖<br> (3)鼓励积极参与、学习努力的同学,处罚违规同学<br> (4)维护本课程管理团队,使管理团队稳定运转<br> (5)保持与云课堂运营人员沟通,反馈管理情况<br>4.
参与者有权质疑版主的管理行为,如遇管理违规,可将申诉情况发至本课程的综合讨论区。<br>5. 讲师、机构、版主可共同制定所属课程讨论区版规。</p><br>
<p><b>第四部分:奖励</b><br>1. 原创或转发的、对他人有讨论或借鉴价值的、发言理性积极、回复热烈的帖子被被标记为精华帖;其中适用范围最广、每个学员都能有所受益的,可同时置顶。<br>2.
老师或版主发布的、对讨论区交流秩序有重要影响的,或包含提供给每个学员的基础服务的帖子,可标记为置顶;其中收到学生好评、学生回复热烈的,可同时加精华。<br>3.
加为精华的发帖,机构、讲师和版主可推荐给云课堂运营人员,通过其它渠道给予奖励和推荐。<br>4.
发布多个精华或置顶帖的普通参与者、版主、讲师、机构,可推荐给云课堂运营人员,通过其他渠道给予奖励和推荐。<br>5.
服务态度积极、频繁帮助他人的普通参与者、版主、讲师、机构,可推荐给云课堂运营人员,举荐其为版主,或通过其他渠道给予奖励和推荐。</p><br>
<p><b>第五部分:惩罚</b><br>1. 讨论区出现包括但不限于如下情况的帖子时,机构、讲师、版主原则上提醒为主,情况恶略的,有权在不通知发布者的情况下删除内容、封禁发布者。<br> (1)在讨论区发布与课程内容无关的时政(及评论)相关内容<br> (2)不尊重他人,直接或含沙射影的人身攻击其他用户<br> (3)发布明显存在科学漏洞、疑神疑鬼、不可证伪的内容<br> (4)发布广告、与课程无关内容2.
处罚操作由机构、讲师、版主执行,执行处罚操作后,需专门发帖说明<br>3. 机构、讲师、版主可根据日常管理经验补充处罚情况列表<br>4.
被处罚者可回复处罚帖提起申诉,申诉需有详细理由。云课堂运营人员将介入申诉评审过程,并发表最终结论。</p><br>
<p><b>第六部分:操作方法</b><br>1. 进入讨论区<br> (1)在每个课程的课程详情页,点击“讨论区”tab,可以进入讨论区。<br> (2)使用他人分享的课程讨论区的链接,可以进入讨论区。<br>2.
发帖<br> (1)在课程讨论区首页点击“发起讨论”按钮,可以发新帖。<br> (2)在课程讨论区子版块点击“发起讨论”按钮,可以发新帖。<br> (3)在课程学习页面,屏幕右侧的“讨论”tab,选择版块,填写内容,点击“发起讨论”按钮,可以发新帖。<br> (4)发帖时需先选择发帖版块,问题需发布到“老师答疑区”,其他内容发布到“综合讨论区”或对应分区。<br> (5)进入发帖页面后,需在“主题”区填写帖子标题,点击“补充详细说明”可填写帖子正文。在“老师答疑区”发布的问题,可在最上端选择该问题与整个课程相关,还是与某个课时相关。<br>3.
回复<br> (1)在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,可以在最下端的回复框内,回复帖子内容。<br> (2)在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,点击主帖下的“回复”按钮,可以回复帖子内容。<br>4.
评论<br> 在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,点击每个回复下的“评论”,可以评论回复内容。<br>5. 分享与关注<br> (1)在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,可点击“关注”按钮,关注该帖子,该帖子有新回复后将会给你通知。<br> (2)在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,可指向“分享”链接并点击分享途径的按钮,可以将该帖子分享出去。<br>6.
举报<br> 在讨论区首页、讨论区子版块、课程学习页面点击帖子内容,进入帖子详情页,可点击主帖或各回复的“举报”链接,举报违规内容。<br>7. 排序<br> (1)进入子版块后,帖子列表最上端的下拉列表为排序规则,点击具体排序规则,可以按规则为本版块帖子列表排序。<br> (2)老师答疑区还包括课时选择列表,选择课时可以看到与该课时有关的问答。<br>8.
搜索<br> 在讨论区首页及各子版块右侧的搜索框中输入关键词,并敲击回车键,可以在对应的版块搜索帖子。</p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}