使用Python-Flask框架开发Web网站系列课程(四)构建前端

news/2024/5/9 22:50:40/文章来源:https://blog.csdn.net/weixin_33769207/article/details/89659566
版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81988424

前言


使用IDE:PyCharm

操作系统:Mac

Python的版本:3.6

我的邮箱:51263921@qq.com

交流群:372430835

说明:

本次课程的GitHub代码在最下面。

本次课程基于上个课程的代码,如果没看过的请先传送:

使用Python的瓶框架开发的Web网站系列课程(一)构建项目

使用Python的瓶框架开发的Web网站系列课程(二)注册功能

使用Python-Flask框架开发Web网站系列课程(三)登录功能

 

一、构建前端项目


前端项目我们之前有用到过,就是全部放置在/myproject/frontend文件夹下。其中static放置js和css文件。base文件夹放置通用的页面,如侧边栏,顶部导航条等。

 

1.1  创建前端文件夹及文件

1.1.1创建文件夹

全路径:/myproject/frontend/base

全路径: /myproject/frontend/static/js

 

1.1.2 添加以下js或html文件

新增文件inspinia.js,在以下路径下载

https://github.com/lyy8510a/myproject/blob/master/frontend/static/js/inspinia.js

 

在/myproject/frontend/base新增_head.html

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.css" rel="stylesheet">
<link href="../static/css/style.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/metisMenu/2.0.2/metisMenu.css" rel="stylesheet"><!-- Mainly scripts -->
<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="https://cdn.bootcss.com/jqueryui/1.10.4/jquery-ui.js"></script>
<script src="https://cdn.bootcss.com/metisMenu/2.0.2/metisMenu.js"></script>
<script src="https://cdn.bootcss.com/jQuery-slimScroll/1.3.6/jquery.slimscroll.js"></script>
<script src="https://cdn.bootcss.com/pace/1.0.2/pace.js"></script>
<script src="../static/js/inspinia.js"></script>

在/myproject/frontend/base新增_sidebar.html

<nav class="navbar-default navbar-static-side" role="navigation"><div class="sidebar-collapse"><ul class="nav metismenu" id="side-menu"><li class="nav-header"><div class="dropdown profile-element"><a data-toggle="dropdown" class="dropdown-toggle" href="#"><span class="clear"><span class="block m-t-xs"><strong class="font-bold">{{PROJECTNAME}}</strong></span></span></a></div><div class="logo-element">IN+</div></li><li class="active"><a href="grid_options.html"><i class="fa fa-th-large"></i> <span class="nav-label">开始</span></a></li><li><a href="#"><i class="fa fa-sitemap"></i> <span class="nav-label">Menu Levels </span><span class="fa arrow"></span></a><ul class="nav nav-second-level collapse"><li><a href="#">Third Level <span class="fa arrow"></span></a><ul class="nav nav-third-level"><li><a href="#">Third Level Item</a></li><li><a href="#">Third Level Item</a></li><li><a href="#">Third Level Item</a></li></ul></li><li><a href="#">Second Level Item</a></li><li><a href="#">Second Level Item</a></li><li><a href="#">Second Level Item</a></li></ul></li></ul></div></nav>

在/myproject/frontend/base新增_navbar.html

这里利用current_user的判断是否登录的方法,如果已登录则显示登出,未登录则显示登录的链接。

<div class="row border-bottom"><nav class="navbar navbar-static-top white-bg" role="navigation" style="margin-bottom: 0"><div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a><form role="search" class="navbar-form-custom" action="" method="post"><div class="form-group"><input type="text" placeholder="Search for something..." class="form-control" name="top-search" id="top-search"></div></form></div><ul class="nav navbar-top-links navbar-right">{% if current_user.is_authenticated %}<li><span class="m-r-sm text-muted welcome-message">欢迎使用myproject,{{current_user.username}}</span></li><li><a href="/account/logout"><i class="fa fa-sign-out"></i> Log out</a></li>{% else %}<li><a href="/account/login"><i class="fa fa-sign-out"></i> 请登录</a></li>{% endif %}</ul></nav>
</div>

在/myproject/frontend/base新增layout.html 

这个是前端总模版,里面引入了_head.html , _sidebar.html, _navbar.html 。并留了一个block content 。以后我们新增的页面,只要套用下面代码段2即可。

<!DOCTYPE html>
<html><head><!--第四课内容 这里是页面浏览器tab的标题--><title>{{PROJECTNAME}}</title>{% include 'base/_head.html' %}
</head><body><div id="wrapper">{% include 'base/_sidebar.html' %}<div id="page-wrapper" class="gray-bg">{% include 'base/_navbar.html' %}{% block content %}{% endblock %}</div></div>
</body>
</html><!--{% with messages = get_flashed_messages() %}--><!--{% if messages %}--><!--<ul class=flashes>--><!--{% for message in messages %}--><!--<li>{{ message }}</li>--><!--{% endfor %}--><!--</ul>--><!--{% endif %}-->
<!--{% endwith %}-->

代码段二: 

<!--第四课内容 -->
{% extends 'base/layout.html' %}<!--第四课内容 下面是正文-->
{% block content %}<!--第四课内容 新页面的内容-->
{% endblock %}

在/myproject/frontend/base 修改 index.html

新首页内容

<!--第四课内容 -->
{% extends 'base/layout.html' %}<!--第四课内容 下面是正文-->
{% block content %}<div class="wrapper wrapper-content"><div class="row"><div class="col-lg-12"><div class="ibox float-e-margins"><div class="ibox-title"><h5>Title</h5></div><div class="ibox-content"><div class="row"></div></div></div></div></div></div>
{% endblock %}

 预览一下,完美。

 

 二、代码地址


github地址:https://github.com/lyy8510a/myproject/releases/tag/v4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_754054.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2018可信云大会】CTO袁国成:HTTPS网站安全评估与监测告警解决方案

2019独角兽企业重金招聘Python工程师标准>>> 袁国成&#xff1a;现在下午时间大家都比较累了&#xff0c;给大家带来一些干货。我今天分享的主题是关于HTTPS网站的安全评估与告警监测。 以往我们在分享安全话题的时候&#xff0c;比较多的是关于网络安全的&#xff…

【Gridsome】静态网站生成

Gridsome 介绍 Gridsome 是一个免费、开源、基于 Vue.js技术栈的静态网站生成器 什么是静态网站生成器静态网站的好处常见的静态网站生成器JAMStack静态应用的使用场景 不适合管理系统 简单页面展示 想要有更好的 SEO 想要有更好的渲染性能 Gridsome 是由Vue.js驱动的Jamsta…

echarts 各种图表网站,留着有用

2019独角兽企业重金招聘Python工程师标准>>> https://echarts.baidu.com/examples/#chart-type-treemap 转载于:https://my.oschina.net/u/3222944/blog/3001309

Java程序员的职业发展路线 附:大型网站 -- 架构技能进阶图谱

职业发展道路基本有3条&#xff1a; 第一条路线&#xff08;技术专精&#xff09;&#xff1a; 初级Java开发---中级--高级---项目主管--Java项目经理---网站架构师----资深专家 第二条路线&#xff08;技术转产品&#xff09;&#xff1a;初级Java开发---中级--产品策划--产品…

宜春网站建设

2019年“五一”小长假结束&#xff0c;很多人给假期生活的总结估计是“人从众”、“买买买”&#xff0c;以致文化和旅游部都用“繁荣超预期”来形容“五一”的文化和旅游市场。据调查&#xff0c;许多人都是通过网上购买火车票、飞机票、各景点门票以及预订酒店&#xff0c;很…

jquery 当页面图片加载之后_谷歌SEO页面速度的重要性

什么是页面速度&#xff1f;页面速度是指网页加载所需的时间。一个页面的加载速度是由几个不同的因素决定的&#xff0c;包括网站的服务器、页面文件大小和图片压缩。也就是说&#xff0c;"页面速度 "并不像 "网页速度 "那么重要。"页面速度 "并…

网站建设协议_了解这几个企业建站流程做出来的网站更让客户喜欢

网站建设步骤是网站建设当中一个重要环节&#xff0c;一个网站看它好不好&#xff0c;重要一点就是这个网站建设了。因为好的网站建设能够让浏览网站用户&#xff0c;一直停留在网站当中。很多人会问这个网站建设要怎么样才能够让用户喜欢&#xff0c;为什么宁开亮传媒免费做的…

javamail发送html_SpringBoot入门建站全系列(十)邮件发送功能

SpringBoot入门建站全系列&#xff08;十&#xff09;邮件发送功能Spring Mail API都在org.springframework.mail及其子包org.springframework.mail.javamail中封装。 JavaMailSenderImpl: 邮件发送器&#xff0c;主要提供了邮件发送接口、透明创建Java Mail的MimeMessage、及邮…

访问调用https_(二)http协议的网站装ssl升级成https

最终目标&#xff1a;微信小程序要想上线 必须内部所有域名都是https&#xff0c;比如网络图片&#xff0c;比如后端接口&#xff0c;比如其他链接。问&#xff1a;既然https://minihome.top/能直接访问了&#xff0c;那我用eggjs(node)写的后端接口是不是就可以正常访问了&…

推荐几个很好很好用的网站

1. MSDN 这是非官方性质的微软网站&#xff0c;但是它无广告&#xff0c;提供了很多的微软资源&#xff0c;却是相当的良心。如果要安装操作系统、office、VS、Visio等都可以从这个网站上进行下载。 2. 高清图片 该网站提供很多高清壁纸&#xff0c;风格清新&#xff0c;艺术风…

大型网站架构技术一览

大型网站的挑战主要来自庞大的用户&#xff0c;高并发的访问和海量数据&#xff0c;任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户&#xff0c;问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一…

大型网站架构演化历程

摘自《大型网站技术架构》&#xff1a;第一章 大型网站架构演化 目录 一、大型网站系统的特点 二、 大型网站架构演化发展历程 1. 初始阶段的网站架构 2. 应用服务和数据服务分离 3. 使用缓存改善网站性能 4. 使用应用服务器集群改善网站的并发处理能力 5. 数据库读写分离 6. 使…

珍藏30年的网站都在这了,自媒体运营必不可少

目录 01办公协作 02 图库 03新媒体相关 04 APP相关 05 小程序相关 06 H5制作 06 二维码 07 问卷 08 gif 09 大数据 10 SasS类平台 11 KOL采购及广告投放 12活动会议 13 长短连接 14 搜索工具 15 思维导图 16 图片处理 17 识图工具 18 表情包 01办公…

HMDB网站 爬取工具

HDMB网站有一个特别不友好的地方是&#xff1a; 搜索相应太慢&#xff0c;成功率还低&#xff0c;这个简直太不爽了。不过白天体验明显好于晚上体验…原因自己品吧 效果图工具使用部分效果 根据HMDBID下载结果 设置搜索条件搜索结果 解析成Excel文件 接受定制任务

网站、数据库的衍变之路(三)

话接前文《网站、数据库的衍变之路(二)》。上文讲了几种静态化方案的利弊&#xff0c;有朋友要讲详细一点&#xff0c;呵呵&#xff0c;这不属于本文的范畴。也有朋友说有些网站不适合搞静态化&#xff0c;是有这种情况。但是在这个时期&#xff0c;网站还处于刚发展的起始阶段…

Java SpringMVC 支付宝-手机网站支付接口

首先就是申请支付宝第三方接口&#xff0c;获取到APPID&#xff0c;应用发布前也可以用支付宝的沙箱环境&#xff0c;服务器要开启外网访问权限&#xff0c;因为支付宝需要返回异步通知(notify_url)和同步通知&#xff08;return_url&#xff09; 如果想学习Java工程化、高性能…

JAVA WEB快速编写一个JSP WEB网站了解网站的基本结构 调试 部署

一、使用eclipse初始化一个JSP WEB项目(即&#xff1a;动态WEB项目)&#xff0c;步骤如下&#xff1a; 如上图示注意选择TOMCAT版本 如上图示勾选生成web.xml&#xff0c;当然如果不勾选也行&#xff0c;但后续如果有需要用到配置的地方就需要再单独添加&#xff0c;故这里我选…

我穿越到1994年,终于发现80%的网站都用PHP的原因!

见字如面&#xff0c;我是军哥&#xff01;昨天晚上写代码到深夜&#xff0c;一头扎到床上&#xff0c;沉沉睡去。第二天睁开眼睛&#xff0c;我发现自己居然坐在一个咖啡馆里&#xff0c;旁边的墙上贴着最新的英文电影海报《阿甘正传》、《肖申克的救赎》这都是1994年的经典电…

Java程序员进阶笔记实操—大型网站架构技术之负载均衡详解(3)

欢迎关注专栏&#xff1a;Java架构技术进阶。里面有大量batj面试题集锦&#xff0c;还有各种技术分享&#xff0c;如有好文章也欢迎投稿哦。 上一篇&#xff1a;Java程序员进阶笔记实操—大型网站架构技术之负载均衡详解&#xff08;2&#xff09; 本次分享大纲 软件负载均衡概…

使用SEP实现:禁止访问特定的网站

利用SEP自带的防火墙可以禁止客户所需要禁止的网站。具体操作如下&#xff1a; 1、点击【Policies】选【Firewall】&#xff0c;在右边右击&#xff0c;选择【Add】。 2、选择【Rules】&#xff0c;可以再【Policy name】里更改名字&#xff0c;便于识别。 3、选择【Add Rule】…