问: 我有一个调用自己的函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var !...: Type "a" or "b": a got input: a 但是,如果我输入别的东西,然后输入 "a" 或 "b",我会得到这样的结果: Type "a" or "b": purple You...Type "a" or "b": a got input: None 我不明白为什么 get_input() 函数返回的是 None,因为它本应只返回 my_var。这个 None 是从哪里来的?...我该如何修复我的函数呢? 答: 它返回 None 是因为当你递归调用它时: if my_var != "a" and my_var !...Python3 documentation 因此,除了在 if 语句中调用 get_input() 之外,还需要返回递归调用返回的内容。
这两天使用 Angular2 遇到的一个 @angular/router 的 bug: 症状 @angular/router 版本 3.0.0-beta.2 使用 safari 浏览器,iOS 的都可以...打开 Angular2 官方的范例项目 点击导航栏上的 Heroes 转到 Heroes 列表页面 后退回到 Dashboard 页面,正常情况下应该有的四个 Heroes 没有出现 桌面 safari...或 iOS 的都可以,使用 router 导航到一个新页面,然后后退,原页面 Component 的生命周期函数不会被调用,导致页面表现不正常。...解决方法 已经有人修复了:fix(router): back button does not work in IE11 and Safari 但至本文成文还没有更新到最新的 router npm 模块里...临时应急的话可以自行修改项目目录下的node_modules/@angular/router/src/router.js 的 282 和 284 行即可 this.locationSubscription
今天说一个 git 使用时的细节:.gitignore 我们在使用 git 管理代码时,如果默认把项目里的所有文件都 add 进去,加入到仓库中,会有几方面问题: 不必要的文件被加入,导致仓库很大...自动生成的文件被加入,会导致频繁改动,并容易产生版本冲突 带有敏感信息的文件被加入,造成信息泄露 那么到底哪些文件应该被提交到仓库里呢?...其实就一个原则:git 只用来上传代码,其他的都不应该加到仓库里 应当忽略的文件包括: 系统生成的临时文件 编译产生的结果文件(比如 .pyc) 用户数据(这个尤其不能加仓库里) 个人开发环境相关的配置文件...x.pyc # 忽略根目录下 TMP 文件夹中的文件 /TMP # 忽略所有名为 build 文件夹中的文件 build/ # 忽略名为 doc 文件夹里的 .txt 结尾的文件(不包含子目录)...doc/*.txt # 忽略名为 doc 文件夹里的 .pdf 结尾的文件(包含子目录) doc/**/*.pdf 另外,Github 也提供了很多不同语言/项目适用的 .gitignore 文件模板供使用
Drupal 核心的开发者编写了代码来调用这些 PDO 函数,并且在其他开发者编写代码来和 Drupal 数据库交互的任何时候,这些代码都可以使用。这在软件开发中是个最佳时间。...$i] = $value; } 你能够之处错误(我都不能)嘛?开发者的假设为,数组数据始终含有数字键,例如0, 1, 2以及其他(i的值)。...你可以看到为什么嘛?...这个例子很有意思,因为它并不是提交单引号和截断查询。反之,它全部关于 Drupal 的代码如何处理传给内部函数的数组。这并不易于通过黑盒测试发现(其中你并不接触任何代码)。...在寻找它们的时候,不要仅仅留意向查询传递未转义单引号和双引号的可能性,也要注意以非预期方式提供数据的可能性,例如在 POST 数据中提交数组参数。
public static void main(String[] args) { A a = new A(); B b = new B(); } } 问题:为什么创建...A对象的时候父类会调用子类方法?...但是:创建B对象父类会调用父类的方法? 答案: 当子类被加载到内存方法区后,会继续加载父类到内存中。...当子类对象创建时,会先行调用父类的构造方法(构造方法也是方法),虚拟机会在子类方法区寻找该方法并运行。 但是:由于java语言是静态多分派,动态单分派。...其结果是当编译的时候,父类构造方法调用的方法的参数已经强制转换为符合父类方法的参数了。 上边代码在编译前已经转换为下面这个样子的了。
大家好,我是才哥。 最近咱们的交流群很活跃,每天都有不少朋友提出技术问题引来大家的热烈讨论探究。才哥也参与其中,然后发现很多pandas相关的数据处理问题都可以通过调用函数的方法来快速处理。...那么,今天我们就来介绍Pandas常用的几种调用函数的方法吧。 这里我们以曾经用于《对比Excel,用Pandas轻松搞定IF函数操作》的案例数据来演示~ 目录: 0....,实际上我们也可以调用内置或者pandas/numpy等自带的函数。...5. pipe 以上四个调用函数的方法,我们发现被调用的函数的参数就是 DataFrame或Serise数据,如果我们被调用的函数还需要别的参数,那么该如何做呢? 所以,pipe就出现了。...pipe又称管道方法,可以将我们的处理分析过程标准化、流程化。它在调用函数的时候可以带被调用函数的其他参数,这样就方便自定义函数的功能扩展了。
大家好,又见面了,我是你们的朋友全栈君。...最近在用 OpenCV 识别棋盘棋子,基本的思路是这样的:先转灰度,再做高斯模糊和二值化,此时棋盘格上有的有棋子,有的无棋子;通过迭代腐蚀,消去棋子,再迭代膨胀回来,就得到了一个纯净的棋盘;识别棋盘,标定位置...就是提升图像的暗部细节。这与加曝处理是不一样的,加曝一般不区分图像的暗部和亮部。...奇怪的是,我在网上搜到的伽马校正函数看起来都很复杂,即便是 python 写的,也都得十几行甚至几十行,可我写的伽马校正函数只有一行。为什么会这样呢?是我理解的不对吗?...、伽马校正(gamma=2)的灰度二值化效果、伽马校正(gamma=3)的灰度二值化效果: 对于彩色图片,这个伽马校正函数依然有效。
在多年写代码的过程中,我总结了不少常用的工具函数。这些工具函数有的能够实现快速重试网络请求,有的可以把任意格式的时间转成标准格式,还有的可以自动生成正则表达式。...我把这些工具函数分别放到多个.py文件中。然后把这些.py文件放在一个叫做my_awesome_util的文件夹中。...由于我没有把这些代码上传到Pypi或者Github,因此我每次在新的项目中要使用时,都要把my_awesome_util文件夹复制到新的项目中,非常麻烦,而且会形成大量的重复代码。...有没有什么办法,能让新开的项目直接就能导入这些工具函数呢?就像导入官方模块import time一样,如果我要使用时间相关的工具函数,我只需要import time_util就可以了。...因为我的工具包里面的代码是在持续演进的,我会经常更新里面的代码,放到site-packages里面以后,代码修改起来很不方便。 我们要用到的,是Python的一个特性,叫做.pth文件。
合理的利用这三个手段,我们基本上可以满足日常页面的布局工作。 但是YUI CSS GRID在YUI3中已经不被推荐使用,我为此感到惋惜和不解。不过幸好,及时不被推荐,我们仍可在项目中使用他。...我在考虑,能否将JS代码写在每个表单中,通过IO将表单调入到当前页面,然后JS生效,再进行提交呢? 这样对应的表单带着自己的JS,逻辑上就比较清楚。...还是使用IO的时候,当通过POST方式提交数据时,第二次点击提交表单按钮,就会发出双份的数据,第三次,发送出去的数据就会变成三份。...我将 io-base.js 的最新版本下载下来,覆盖了本地文件之后,发现问题并没有解决,使用firebug查看,如下: 1.png 原来这些模块都还是通过combo调用的远程的,很奇怪的是为什么在firebug...至此,发现了原来将 YUI(combine:true) 配置去掉,就可以调用本地文件了。但同时丧失了 combo 的这个节省带宽的优势,本地有办法自己搭建一个 combo 么?
函数节流与函数防抖 函数节流和函数防抖是一个老生常谈的话题了,两者都是对大量频繁重复调用代码的一种优化方案 今天在某群和大家讨论时,顺便搜了一些相关博客 发现有一篇关于两者的定义竟然写反了。。。...函数节流的定义:限制函数在一定时间内调用的次数 函数防抖(debounce) 是函数在特定的时间内不被再调用后执行。 实际的例子 还是拿城市交通工具来说事儿。。...在一些与用户的交互上,比如提交表单后,一般都会显示一个loading框来提示用户,他提交的表单正在处理中。...这样在用户看来就是页面中闪过一团黑色,所以可以在提交表单后添加一个延迟函数,在XXX秒后再显示loading框。...:函数在特定的时间内不被再调用后执行 总结 函数节流、函数防抖 两者都是用来解决代码短时间内大量重复调用的方案。
默认值:null(服务器返回responseText值) beforeSubmit 表单提交前被调用的回调函数。”...beforeSubmit”回调函数作为一个钩子(hook),被提供来运行预提交逻辑或者校验表单数据。如果 “beforeSubmit”回调函数返回false,那么表单将不被提交。”...beforeSubmit”回调函数带三个调用参数:数组形式的表单数据,jQuery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。...null success 表单成功提交后调用的回调函数。...如果提供”success”回调函数,当从服务器返回响应后它被调用。然后由dataType选项值决定传回responseText还是responseXML的值。
无序列表的基本格式如下: 列表项1 列表项2 列表项3 示例: 我最喜欢的食物...中只能嵌套,输入其他标签或文字的做法是不被允许的。 与之间相当于一个容器,可以容纳所有元素。...为什么要使用表单: 使用表单的目的是为了收集用户信息。 在我们的网页中,我们需要和用户交互,手机用户资料,此时就需要表单。...会把它范围内的表单元素信息提交给服务器。...url地址 用于指定接收并处理表单数据的服务器程序的url地址 method get/post 用于设置表单数据的提交方式 name 名称 用于指定表单的名称,以区分同一个页面中的多个表单域 表单控件
靶机介绍 这次的靶机渗透实战是一个找寻靶机中的flag的过程,并以获得最终的flag为目标。...针对drupal网站,使用droopescan 扫描 ? 渗透实战 ? ? 再来看看下面: Home: ?nid=1 传参了 而刚才上面的没有任何参数 ? ? ?...看到Id就想到sqli, 留言板就要想到XSS 凡是传输数据库的参数id都要特别注意。 Id’ 加个单引号测试 ? ? 报错了 而且网站的绝对路径泄露。...注意红框部分,可以编辑php代码,试着反弹shell,(需要注意的是在php代码前面最好写一些字符,否则代码无法执行,不知道什么逻辑) ? 这里其实是在用户提交表单时触发php代码。...我们试着提交表单。事先要先监听本地端口。 ? 提交表单 ? shell已经连接 ? 提权前先跑一下脚本,看一些基本信息 ? sudo存在漏洞CVE-2019-14287 ?
drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,drupal...是网站运行访问必不可少的一个分支,为了网站的安全,不被攻击者攻击,我们要对网站以及服务器进行全面的安全加固与安全设置,包括我们服务器安全设置,web安全设置,php环境安全设置,msyql数据库安全设置...关于目前出现的drupal漏洞,我们都要对其进行漏洞修复,以及网站安全加固与安全防护,对于如何修复drupal漏洞,我们应该从最基础的代码安全入手,我们应该从下面的几个点开始: 从哪里来就应该到哪里去,...从最基础的代码入手,大多数的网站使用的drupal系统开发的,基本都会适用于下列的几种情况,使用大多数网站运营者的一个社区开发的安全解决方案,可以对drupal系统进行更好维护与升级,检查drupal的版本为最新...像mysql数据库的端口也要禁止掉,不要对外开放,只允许本地数据库调用。
通过查阅 Drupal 的代码和文档,可以知道,对于 #pre_render,#post_render、#submit、#validate 等变量,Drupal 通过 call_user_func 的方式进行调用...但是由于 Drupal 代码复杂,调用链很长,所以导致了所谓“开局一个 #,剩下全靠猜”的尴尬局面,即使知道了漏洞触发点,但是找不到入口点一样尴尬。...直到昨日,CheckPoint 发布了一篇分析博客,我才注意到原来 Drupal 8.5 提供了 Ajax 上传头像的点,并且明显存在一个 $form 数组的操纵。...Exploit 构造 虽然实现了代码执行,但是 #pre_render 调用的参数是一个数组,所以导致我们不能任意的执行代码。...#lazy_builder 是一个 array,其中元素 0 为函数名,元素 1 是一个数组,是参数列表。接着利用 call_user_func_array 进行调用。不过注意到上方这段代码: ?
近期,Drupal发布了两个针对7.x和8.x版本的关键漏洞修复补丁。...已禁用用户注册和用户评论功能的Drupal网站不会受到这种攻击的影响,请广大网站管理员尽快将自己的Drupal站点升级为最新版本。...漏洞ZDI-19-291则是Drupal在处理已上传文件的文件名过程中存在的一个漏洞,该漏洞与PCRE-Perl兼容的正则表达式有关。...在Drupal源码中,执行完pregreplace()后不会进行错误检查。当一个带有无效UTF-8字符文件名的图片上传至Drupal两次时,该函数将会使用$destination,也就是’’....下面的system_check_directory()函数是表单回调函数,负责处理用户请求。根据我们的研究,“!
bug场景.png 小 H 发现表单确实无法提交,于是便在提交按钮的点击回调函数中打了断点想一探究竟,这一调试可把小 H 愁坏了:validateFields 的回调函数中存在 D 字段的必填校验错误。...A 从 A1 切换到 A2 后,之前展示的 C, D 字段应该注销了呀?为什么 D 字段在表单提交的时候还会执行自己的校验规则呢?...一时丈二和尚摸不着头脑的小 H 着急着去吃午饭,心想着既然是表单提交不了的原因出在 D 字段的校验上,那给 D 字段的校验函数中加一个判断不就行了 。...首先,从提交按钮点击回调的调试中我们发现,C 字段的值在我们从 A1 切换到 A2 后会正常消失,而且 C 的校验函数在提交时也并不会被执行。为什么 C 会消失,而 D 不会?...好奇的 小 H 通过源码来探究一下 rc-form 字段消失的秘密。 “Ta”如何消失 为了探究为什么没有添加 ref 的函数式自定义表单控件无法正常的注销字段而且会触发校验函数。
大家好,又见面了,我是你们的朋友全栈君。...Drupal表单实例教程 form_example.info文件 name = Form example description = Examples of using the Drupal Form...php /** * @file * Examples demonstrating the Drupal Form API. */ /** * @defgroup form_example Example...: Form API * @ingroup examples * @{ * Examples demonstrating the Drupal Form API. * * The Form Example...$help = t('This form example tutorial for Drupal 7 is the code from the drupal.org/node
领取专属 10元无门槛券
手把手带您无忧上云