知行编程网知行编程网  2022-05-17 05:00 知行编程网 隐藏边栏 |   抢沙发  15 
文章评分 0 次,平均分 0.0
面试官问我Python日历模块,我直接用Flask开发Web版日历应用给他


  嚣张的面试开场  


面试官:小伙子,python与时间有关的基础模块有哪些?
我:time datetime calendar
面试官:简单介绍下calendar日历模块
我:我拒绝!
面试官:小子你很拽啊,那你想如何?
我:我想给大佬你做一个美观的网页版日历啊。
面试官:走两步,我瞧瞧…
我:好嘞!


 Python Calender模块 


python的日历模块Calender提供了多种日历展示模式:

参数 说明 示例
calendar.calendar(year) 输出某一年的日历 calendar.calendar(2019)
monthcalendar(year, month) 返回一个月中天数列表(不是当前月份的天数为0) calendar.monthcalendar(2019, 6)
setfirstweekday(firstweekday) 0是星期一,…,6为星期日 calendar.setfirstweekday(firstweekday=6)
prmonth(theyear, themonth, w=0, l=0) w每个单元格宽度,l每列换l行 calendar.prmonth(2019, 6)
calendar.month_abbr[month] 打印月份对应的英文简写 calendar.month_abbr[6]
calendar.isleap(year) 判断某一年是否为闰年 calendar.isleap(2012)
calendar.weekday(year,month,day) 判断某一天是周几0(周一一)到6(周日) calendar.weekday(2019,12,25)

基本的就是上面这些了….


  Bootstrap 表格  


Flask使用Bootstrap模板,这个前几期已经说了,还不清楚的朋友,可以看看往期内容。
今天主要说下Bootstrap的table

说明
.table 少量的内补(padding)和水平方向的分隔线
.table-striped <tbody> 之内的每一行增加斑马条纹样式
.table-bordered 为表格和其中的每个单元格增加边框
.table-hover 可以让 <tbody> 中的每一行对鼠标悬停状态作出响应
.table-condensed 可以让表格更加紧凑,单元格中的内补(padding)均会减半
.active 鼠标悬停在行或单元格上时所设置的颜色
.success 标识成功或积极的动作
.info 标识普通的提示信息或动作
.warning 标识警告或需要用户注意
.danger 标识危险或潜在的带来负面影响的动作


 

   Flask日历   


今天通过Flask,制作一个网页版日历,系统启动后,计算当天日期,并生成日历,高亮表示本月和今日。
首先,需要考虑日历的响应式布局,每行放四个月的数据,所以需要使用Bootstrap的栅格化
<div class="col-lg-3">,保证在没有足够宽的情况下,自动转为单月的数据展示,避免重叠
其次,针对数据的排列,日历模块中
calendar.monthcalendar(year, month)会返回一个原组,但如同下面的情况:

有的月份刚好卡在1号周六,所以列表长为6….这样会导致绘图的时候日历表格高度差异,所以如果不满6个的月份,我们手动给他创建创建一个数据全为0的空列表:

针对返回的数据,使用Jinjia2模板进行循环获取,要注意一点是,如果是日期是0的,代表站位符,需要进行替换。
但如果整行都是零,会导致Bootstrap的表单样式变更,故使用
&nbsp进行占位操作。
最终HTML代码如下:

JInjia2模板中,通过对with 和set的局部变量定义,判断月份与日期,最终达到高亮当月和当天的效果:

面试官问我Python日历模块,我直接用Flask开发Web版日历应用给他
当天高亮效果


再来看看完整的效果展示:


面试官问我Python日历模块,我直接用Flask开发Web版日历应用给他
完整效果

完整代码:

面试官问我Python日历模块,我直接用Flask开发Web版日历应用给他
代码目录

回复 日历 ,即可获取完整代码打包文件。

end



热门原创往期:

80行代码!用Python做一个哆来A梦分身
用Python一键生成炫酷九宫格图片,火了朋友圈
熬了一夜!我用Python做了一个网站,帮小姐姐生成漫画头像
用Python实现Instagram滤镜,变成百变女神!
有点玄乎!用Python分析《隐秘的角落》里微表情


每个程序员都是从菜鸟开始成长起来的,没有人一开始就是程序员高手。菜鸟爱编程,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。


菜鸟编程大本营

<pre style="letter-spacing: 0.544px;line-height: inherit;"><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="94086" data-color="#276ca3" data-tools="135编辑器" mpa-from-tpl="t"><section><section mpa-from-tpl="t"><p style="text-align: center;"><img class="rich_pages" data-cropselx1="0" data-cropselx2="225" data-cropsely1="0" data-cropsely2="225" data-ratio="1" data-s="300,640" data-type="jpeg" data-w="1280"  style="box-sizing: border-box !important;visibility: visible !important;width: 225px !important;" src="https://www.zkxjob.com/wp-content/uploads/2022/05/wxsync-2022-05-9eaccd0daf13bc626cb1ce71e0f0f469.jpeg"  /></p><p style="text-align: center;"><span style="font-size: 15px;">长按2秒,输入:【<span style="color: rgb(255, 41, 65);"><strong>书单</strong></span>】</span></p></section></section></section></section>


<section data-darkmode-color-15968917432472="rgba(163, 163, 163, 0.9)" data-darkmode-original-color-15968917432472="rgba(230, 230, 230, 0.9)" data-darkmode-bgcolor-15968917432472="rgb(25, 25, 25)" data-darkmode-original-bgcolor-15968917432472="rgb(255, 255, 255)" data-darkmode-bgcolor-15969837802236="rgb(25, 25, 25)" data-darkmode-original-bgcolor-15969837802236="rgb(255, 255, 255)" data-darkmode-color-15969837802236="rgba(163, 163, 163, 0.9)" data-darkmode-original-color-15969837802236="rgba(230, 230, 230, 0.9)" style="margin-right: 8px;margin-left: 8px;min-height: 1em;text-align: right;"></section>

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享