首页
学习
活动
专区
圈层
工具
发布

以Python为例查询学校图书馆剩余书籍信息,挂在云服务器上并定时发送邮件提醒

前言 最近想从图书馆里借一本书,可是图书馆里那两本书都借走了,其中有一本书在3月3号到期应还,所以我想着这几天那个人应该会来图书馆还书,所以我写了个python脚本,放在服务器上,每隔一段时间查询,如果那人还书了...如下图 列表里展示的是这个页面所有的js请求 分析js请求 通过枯燥乏味的寻找(一定要耐心寻找,这是最耗时间的地方),我终于找到一个请求,里面是json信息,如下图 可以看到第四个js...我只是为了方便看json信息,我用的是CSDN插件中json工具,使用方便一些),如下图 左侧为原本数据,右侧为json工具处理的,是不是清爽了许多?...使用的方法比较简单,但是很实用。对我讲的不清楚的地方可以留言,我一定会回复的。...这应该是目前为止写过的最长最认真的一篇的文章,如果写的还行的,可以点赞支持一下,如果大家觉得写的不好的话可以在评论区的留言,感谢大家的支持。

50320

已中招!Android 基础面试常常吊死在这几个问题上……

第三波 11、面试官:你是如何做到旋转屏幕时防止数据重新加载和重置的?...它的创建要比 Serializable 的效率要高得多(此方法的问题是使用了反射,这是一个缓慢的过程。此机制还倾向于创建许多临时对象,并导致相当多的垃圾回收。)...例如,当需要加载手机中很多图片并要求拿到各种信息时,如照片的尺寸等,或读取非常大的 Json 文件时候,应该放到子线程中操作,当处理完毕后,通知主线程继续执行任务!...应聘者:它是一个列表,有自己的适配器,在 onBindViewHolder 方法中进行数据的绑定的! 面试官:我给你补充一下! RecyclerView 在显示较长的项目列表。...同样,一种简单的方法是为需要显示的每个新行创建一个新视图。但是通过这种方式,当您到达列表的末尾时,将创建100个视图,并且的内存使用情况将与第一种方法相同。

3.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    10 款你不知道的 Linux 环境下的替代工具!

    从上面 bat 命令的输出,可以看出是有表格线的,如果你只想显示行号(而没有表格)可以使用-n参数来实现,虽然 cat 执行也会显示行号,但还是没有 bat 执行输出后的效果美观。...除了列出所有进程及其 CPU 和内存使用情况之外,它还可以显示有关系统的其他信息,比如: 网络及磁盘使用情况 文件系统已使用的空间和总空间 来自不同传感器(例如电池)的数据 以及最近消耗过多资源的进程列表...终端屏幕不再是瓶颈:exa 功能强大,比 ls 要友好,输出结果会更快; 颜色:exa 大量使用颜色; 不与 ls 命令冲突 EXA 的特征 色彩:文件类型列表以及如何区分文件; 网格视图:在与终端窗口大小相同的网格中显示文件...; 长远:在表中显示文件及其元数据; 树视图:在树中显示文件及其子代; Git 集成:在存储库中时,查看文件的 Git 状态; 筛选:隐藏列表中的文件,显示不可见的文件,并对输出进行排序; Xattrs...,大多数还都是用的默认基本命令工具,当如果你替换成上述所介绍的 10 款替代品工具时,相信在许多场景中还是非常有用的。

    2.2K21

    flask 应用程序编程接口(API)最后一节

    因此,对于客户端来说,如果不直接连接到服务器,它发送请求的方式应该没有同样,这个原则规定服务器兼容直接接收来自代理服务器的请求,所以它绝不能假设连接的另一端一定是客户端 这是REST的一个重要特性,因为能够添加中间节点的这个特性...API添加用户动态,那么用户的动态列表链接也应包含在这里。 JSON格式的一个好处是,它总是转换为Python字典或列表的表示形式。...将集合转换成json表示,不需要反向操作,因为我不需要客户端发送用户列表到服务器。 错误处理 我在第七章中定义的错误页面仅适用于使用Web浏览器的用户。...在API蓝图中的API可能返回的许多错误可以被重写为JSON版本,但是仍然有一些错误是由Flask处理的,处理这些错误的处理函数是被大量注册到应用中的,返回的是HTML。...然后,服务器查看自身格式列表并使用匹配客户端格式列表中的最佳格式进行响应。 我想做的是修改类别应用的错误处理器,使它们能够根据客户端的格式首选项对返回内容是使用HTML或JSON进行内容协商。

    6.2K10

    推荐一个检测 JS 内存泄漏的神器

    大家好,我是 ConardLi。作为一名 Web 应用程序开发者,排查和修复 JavaScript 代码的内存泄漏一直是最困扰我的问题之一。...最常见的原因是客户端缓存没有内置任何释放的逻辑,无限滚动列表没有任何虚拟化的功能,无法在添加新内容时从列表中删除较早的内容。...「区分堆」:导航到一个页面然后离开它,正常情况下该页面分配的大部分内存也应该被释放,如果没有,可能暗示着存在内存泄漏。...拥有这样的强连接图的缺点是,如果有任何外部引用指向图的任何部分,就无法对整个图进行垃圾回收。...试用 MemLab: npm i -g memlab 最后 MemLab Github:https://github.com/facebookincubator/memlab 如果你有任何想法,欢迎在留言区和我留言

    4.8K20

    在没有DOM操作的日子里,我是怎么熬过来的(上)

    我在想,如果能从一开始学的时候,把之前的开发思路忘掉,就当自己从来没学过编程,以一种空杯心态从零开始学的话,应该会比较快。之前没有考虑到思路转换这一步,走了弯路。...按照我以前的开发经验,如果不直接操作dom,难道vue还有更先进的办法吗?答案是,有的。 vue大法好,应该有的尽量有。...在vue的王国里,操作元素的class列表和内联样式,是数据绑定的一个常见需求。 那vue的办法就是,用v-bind去绑定它们。...答案自然是可以的。JQuery 和 VueJS 合理使用并不会造成冲突,因为他们的侧重点不同,VueJS 侧重数据绑定和视图组件,JQuery 侧重异步请求和动画效果。...其实两者并没有什么功能上的交集,如果你非要问可不可以用vue来实现jQuery所能实现的功能的话,我只想说,能,并且更加简洁。

    3K120

    使用 Flask-RESTPlus 构建生产级应用

    前几天有人辗转找到公众号,留言询问之前一篇介绍 Flask-RESTPlus 文章的源代码(获得该文章请在公众号回复 swagger),Flask-RESTPlus 虽然看起来非常方便,但在实际编写代码时总有种和当前项目结构冲突的感觉...自带的蓝图,如果是新项目的话可以考虑使用 Flask-RESTPlus 的 Namespace 替代,但是如果是老项目迁移,成本还是蛮高的,因此可以将 蓝图与 Flask-RESTPlus Api 绑定...api 比例非常多,依然选择装饰器,那么装饰数量将要突破 6 个而且到处写一样的逻辑非常丑,因此我继承了 Flask-RESTPlus 视图类 Resource,并复写了 dispatch 函数,如果有方法需要...装饰器便是处理相关逻辑,该装饰器会将一个 json-schema 规则传入,然后在处理该 api 函数前将 request 中的 json body 验证,如果验证失败便会封装一个友好的 400 Response...为了方便使用 json-schema 验证,我也将相关逻辑封装了继承的视图基类里,相关代码: class BaseView(Resource): json_schemas = {} internal_token_required

    1.7K21

    2018 - iOS 面试题汇总一般面试题BAT面试题

    那么面试题自然还是要看下的,在这我就把我手里收集到的面试题(朋友面试,网上收集等等)进行了汇总,希望可以帮到正在或者准备面试的你,同时我也可以自己在过一遍一般面试题 1.堆和栈的区别 1.内存管理范围...release OC对象存放于堆里面(堆内存要程序员手动回收) 非OC对象一般放在栈里面(栈内存会被系统自动回收) 堆里面的内存是动态分配的,所以也就需要程序员手动的去添加内存、回收内存 3.内存分配以及管理方式...如果 Cell 展示的内容来自网络,确保用异步加载的方式来获取数据,并且缓存服务器的 response。 使用 shadowPath 来设置阴影效果。...(UIViewController)(如果有的话),然后再转给它的父视图(Super View); 3、视图控制器(如果有的话)的下一个响应者为其管理的视图的父视图; 4、单例的窗口(UIWindow...5.整合常量 34.项目中网络层如何做安全处理 1.判断API的调用请求是否来自于经过授权的APP。

    6.9K30

    受用一生的高效 PyCharm 使用技巧(五)

    如果你和我一样是个键盘党,你可以使用快捷(Mac:按住Command键,再按+或者- )进行快速反折叠/折叠。 ? 代码块的折叠和反折叠,应该是一个代码编辑器的基本功能。...有时候,我们并不希望整块代码进行折叠,而只想对其他一大段暂时对我们无用的代码进行折叠。那能做到吗? 答案是可以的。...比如下面这段代码,我只想改myfun 里的的test_name,而对于全局下的同名变量是不应该修改的。如果你全局替换,就会有误伤。 ? 这时候,我们如何做呢?...复杂操作,录制成宏 如果你在使用PyCharm 的时候,遇到有一些操作是比较复杂(步骤多),且使用频率特别高。 那可以考虑一下,使用其自带的宏录制工具。 它会将你的一连串操作,录制下来。...---- 好了,本次的 PyCharm 使用技巧,就是这五个了,你学会了吗? 最后,感谢你的阅读,如果觉得文章对你有所帮助,还望你能帮忙分享、转发、点在看,这就是对我的最大支持。

    89120

    四个提升数据管道的最佳软件工程策略

    二者非常相似,许多起源于软件工程的最佳实践对数据工程同样有效,前提是需要正确地构建它们。 在本文中,将详细介绍几个软件工程的最佳实践,以及如何更好地创建和维护数据管道。...明确这一级别的抽象意味着需要建立一个通用语义层——并有助于避免在不同的BI工具和用户组中出现多个相互冲突的语义层。...软件工程与声明式编程并行,声明式编程关注的是程序可以“做什么”,这与命令式编程恰恰相反,命令式编程关乎任务应该“如何做”。...声明式编程是建立在命令式编程之上的一种抽象程序:在运行时,程序经过编译之后,才能解决“如何做”的问题。声明性编程允许在运行时具备更大的灵活性,从而节省了资源。...如果使用的是来自供应商的产品,它可能会提供GitOps工作流,这意味着工程师可以使用Git在他们首选的开发环境中进行管道协作。然而,并不是所有人都这么做。

    33910

    受用一生的高效 PyCharm 使用技巧(五)

    如果你和我一样是个键盘党,你可以使用快捷(Mac:按住Command键,再按+或者- )进行快速反折叠/折叠。 ? 代码块的折叠和反折叠,应该是一个代码编辑器的基本功能。...有时候,我们并不希望整块代码进行折叠,而只想对其他一大段暂时对我们无用的代码进行折叠。那能做到吗? 答案是可以的。...比如下面这段代码,我只想改myfun 里的的test_name,而对于全局下的同名变量是不应该修改的。如果你全局替换,就会有误伤。 ? 这时候,我们如何做呢?...复杂操作,录制成宏 如果你在使用PyCharm 的时候,遇到有一些操作是比较复杂(步骤多),且使用频率特别高。 那可以考虑一下,使用其自带的宏录制工具。 它会将你的一连串操作,录制下来。...假设你现在知道了一个特别关键的类,你特别想知道是哪里调用了这个类,你想知道源头,知道整个调用流程。 这个时候你如果使用全局搜索,就会有很多的干扰信息。

    1K10

    再也不用担心面试官问RecycleView了

    关于RecyclerView,之前我写过一篇比较基础的文章,主要说的是缓存和优化等问题。但是有读者反映问题不够实际和深入。...于是,我又去淘了一些关于RecyclerView的面试真题,大家一起看看吧,这次的问题如果都弄懂了,下次面试再遇到RecyclerView应该就没啥可担心的了。...,包含数据和position信息,复用时必须是相同位置的ViewHolder才能复用,应用场景在那些需要来回滑动的列表中,当往回滑动时,能直接复用ViewHolder数据,不需要重新bindView。...又或者我只想某一个view的文字颜色进行高亮设置?那么我就可以通过payload参数来标示这个特殊的需求了。 具体怎么做呢?...之前说过解决滑动冲突的办法有两种:「内部拦截法和外部拦截法」。这里我提供一种内部拦截法,还有一些其他的办法大家可以自己思考下。

    1.9K20

    这样配置:让你的 IDEA 好用到飞起来

    但是我强烈建议你不要这么做,因为你是可以在Enter Presentation Mode模式下在IDEA里面做任何事情的。...当然前提是,你对IDEA足够熟练 30.神奇的Inject language 如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。...选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。 ? 选择完后。...选中Edit JSON Fragment并回车,就可以看到编辑JSON文件的视图了。 ? 可以看到IDEA确实帮我们自动转义双引号了。...如果要退出编辑JSON信息的视图,只需要使用ctrl+F4快捷键即可。 Inject language可以支持的语言和操作多到你难以想象,读者可以自行研究。

    2.1K30

    微光行动|我们在地铁里建了一座「公园」

    “今天早上上班就被这个区域吸引住,加上绿植有口袋公园的味道。当时第一感觉是,应该没有人会去坐吧,大家在地铁上都是来去匆匆,结果下班就看到坐满了,有睡觉的,玩手机的,还有打开电脑聊工作的。”...——来自小聪明的朋友圈 11月的第一天,小聪明在朋友圈里记录了她发现的“口袋公园”。...PART 02 5部电话:嗨,我们在听 不安、焦虑、压抑… 可能在你心里,也不时有类似阴霾闪过,又不知和谁诉说。如果你愿意,可以选择坐下拿起电话。 现场有5部电话,其中2部在限定时间内可以拨通。...电话另一头,有23位接线员,他们是专业的心理咨询师,为此次活动免费提供电话服务。 另外3部电话是留声机,也是情绪回收站。如果你只想不受打扰地倾诉,也可以试着拿起电话留言。...即使是再细微的情绪,也值得被倾听。 PART 03 歇一会儿,再出发 “找张椅子歇一会儿”线下体验空间开张10天以来,我们看到、也听到了许多人的故事。

    71230

    恼人的空单元格,怎么查找,有很多办法

    标签:Excel公式练习 在列表中,有很多空单元格,想要找到第一个非空单元格,如何做? 下面图1是示例数据。当然,为了演示起见,我只是列举了少量数据,实际上这个列表可能会非常长。...如果你不使用公式,只想使用Excel操作的话,可以先选择整个列表(即单元格区域B3:B22),按下F5键,在“定位”对话框中单击“定位条件”按钮,在“定位条件”中选择“空值”,单击“确定”按钮,这样就选择了列表中所有的空单元格...然后,按“Ctrl+-”组合键,在弹出的“删除”对话框中选择“整行”,单击“确定”。 如果使用公式呢?也有多种实现方法。...然而,这个公式只是适用于第一个非空单元格的值是文本数据的情形。如果第一个非空单元格的值不是文本数据,它会返回第一个文本数据单元格的内容。...欢迎留言分享。

    2.5K20

    带你认识 flask 用户通知

    在第一种方法中,客户端通过发送异步请求定期向服务器请求更新。来自此请求的响应是更新列表,客户端可以使用这些更新来更新页面的不同元素,例如未读消息计数标记。...我需要做的只是向应用程序添加另一条路由,例如 /notifications ,它返回JSON格式的通知列表。然后客户端应用程序遍历通知列表并将必要的更改应用于页面。...该解决方案的缺点是实际事件和通知之间会有延迟,因为客户端会定期请求通知列表。例如,如果客户端每10秒钟询问一次通知,则可能延迟10秒接收通知。...,它返回一个包含用户通知列表的JSON负载。...如果包含此参数,则只有在此时间之后发生的通知才会被返回。 完成此功能的最后一部分是在客户端实现实际轮询。

    2.5K30

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    它们之间有什么区别,什么时候应该使用 Form ,什么时候应该使用 List ?谢谢!A:Form 是一种将许多相关控件组合在一起的方式。...虽然 Form 和 List 在 iOS 上看起来差不多,但如果你看一下 macOS,就会发现它们之间的不少差异。与 macOS 上的 List 相比,许多控件在 Form 中的外观和行为都有所不同。...如果你要渲染许多相关的控件,使用 Form 会在 iOS 和 macOS 上有最好的默认体验。...我采用了常见的解决方案,即旋转滚动视图和里面的每个单元格,以获得预期的倒置列表,在 iOS 上,这很有效。但在 macOS 上,它使 CPU 使用率保持在 100%。...我正以聊天室、Twitter、博客留言等讨论为灵感,从中选取有代表性的问题和技巧制作成 Tips ,发布在 Twitter 上。

    19.8K30

    《Pluto - iOS 上一个高性能的排版渲染引擎》

    | 导语 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证 Qzone Feed 业务复杂,样式很多。...目前 Pluto 已经应用于 QQ,Qzone 上大部分的空间 Feed 样式,关于 Pluto 和这些现有的排版渲染引擎对比的细节,我后面会说明,我们先来看看 Pluto 用起来是怎么样的。...想必看到这里,大家应该知道 Pluto 是什么东西了。上面的 JSON 文件阅读起来也非常自然,直接。接下来要解决的问题比较多。这里重点描述点击事件、模板、重用、扩展。...重用指的是,在 UITableView 等列表控件,在滑动的时候,不同列表项复用同一个 Cell,Cell 里面的视图数据可以重复使用,核心是为了减少创建视图和修改视图树的次数。...实现原理如下图所示,每个 Pluto 生成的视图中,会包含一个复用池,当使用复用特性时,视图不会被销毁,而是被回收,回收时,其子视图会被放入复用池内,(这里的子视图是一个视图树,即也包含了子视图的子视图

    1.6K70

    Java程序员“硬闯”阿里之路,已收获offer(附超详细面经)

    而是之后可能都无法进这家公司博客没什么好文章,github没好项目就不要写在简历中了 对于面试官的问题,想清楚再回答,如果觉得需要的时间可能比较长,可以跟面试官说我思考下、我整理下思路之类的遇到不会的问题直接说不会...---- 接下来说技术相关的考察。 总的来说,技术相关的考察主要分为两大块,一是基础,二是经验。 基础包括java基础、数据库、中间件等,来自于日常的积累和面试前的准备。...老年代为什么采用的是标记清除、标记整理算法 什么情况下使用堆外内存?要注意些什么? 堆外内存如何被回收? jvm内存区域划分是怎样的?...mysql索引为什么用的是b+ tree而不是b tree、红黑树 分库分表如何选择分表键 分库分表的情况下,查询时一般是如何做排序的?...Storm高可用、消息ack机制 算法 算法的话不是所有公司都会问,但最好还是准备下,主要是靠刷题,在leetcode上刷个100-200道easy和medium的题,然后对应公司的面经多看看,问题应该不大

    1K00

    前端妹子说:你是个好人,但我们不合适!

    雷猴,我是一航,一个爱叨逼叨的程序员; 某天和前端妹子联调接口时被嫌弃我给的数据太多了,让我给去掉。 哦豁!!! 我倾尽全力给了你 我能给的所有,你竟然说不合适,还让我拿回去!...比如一个用户对象,在查询列表的时候,不需要返回密码;但是查询详情的时候就得返回密码信息(这里仅仅是打个比方,密码数据一般都不会返回到客户端); 他两返回的只是List和User的区别,那如何做到...方案也有好几种,可以针对场景做合适的选择; 数据库按需查询【推荐】 Dao查询列表的时候,仅仅查询基础信息,不包含密码信息;查询详情的时候,就把更详细的详细查询并返回; 定义不同的前端视图对象 查询的时候...UserDetailsView extends userSimpleView { } } 第一步:定义不同的视图对象 第二步:在属性的get方法上面指定不同的视图@JsonView(xxx.class...;如果业务逻辑比较复杂,最终数据来源于多个地方,通过数据库的方式会导致Dao越来越庞大,使用JsonView的方式可能很轻松就满足了需求; 我们最终目的是让结构更清晰,代码更合理,维护更容易,所以合适才是最重要

    55920
    领券