杜逸先 Python3 的新特性和改进Python3的新特性和改进 杭州美登科技 杜逸先 目录 CONTENTS Python的现状 Python3的新特性和改进 迁移到Python3 问答环节 1 Python的现状 Python的现状 Python2.7将于2020年1月1日停止维护 Python的现状 Python2.7将于2020年1月1日停止维护 主流Python包陆续终止对Python2的支持 Python的现状 Python3的新特性和改进 ——重要变化 Python3的新特性和改进——重要变化 Text Vs. Data Instead Of Unicode Vs. 8-bit 内容 类型 混合使用 Python3 Text Vs. Data str Vs. bytes ✖ Python2 Unicode Vs. 8-bit unicode Vs. str ✔ Python3的新特性和改进——重要变化 Python2 Python3的新特性和改进——重要变化 Python3 Python3的新特性和改进——重要变化 Python3的str和bytes不能混用! Python3的新特性和改进——重要变化 求一段文本的MD5:Python2 Python3的新特性和改进——重要变化 求一段文本的MD5:Python3 Python3的新特性和改进——重要变化 Views And Iterators0 码力 | 78 页 | 2.28 MB | 1 年前3
邓良驹 编写更安全的Python代码编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys "__main__": shellcode = pickle.dumps(ShellExp()) pickle.loads(shellcode) 应对: 绝不对不可信/未认证数据进行unpickle,使用更安全的JSON 或YAML做序列化。必须使用pickle时在沙盒环境执行。 小心 PyYAML 应对: 使用yaml.safe_load,必要时编写自定义 Loader 做更严格的检查。 对不可信来源的序列化检查后操作。 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit0 码力 | 18 页 | 988.40 KB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 54 -> 0.59 3.14 -> 0.93 2.00 -> 0.03 2.60 -> 0.96 如果还有时间,我们用静态类型 来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心 智负担的工作。 THANK YOU thautwarm: - github.com/thautwarm - twshere@outlook.com0 码力 | 43 页 | 10.71 MB | 1 年前3
1_丁来强_开源AIOps数据中台搭建与Python的作用缺少持续改进(运维⼈人员⼤大部分时间忙于救⽕火) • ⼈人员学习速度跟不不上业务增⻓长和问题出现的速度 基本概念 • AIOps = Artificial Intelligence for IT Operations • 组合⼤大数据 + 机器器学习 + 分析来帮助IT运维: • 发现、预测、修复问题 ⼤大数据 机器器学习 分析 Garner:AIOps对IT运维的改进 ⼤大数据促进平台融合 ⼤大数据促进平台融合 • 采集各种数据(以下各种⻆角⾊色都关⼼心): • IT运维⼈人员、开发⼈人员、数据⼯工程师、 • 安全运维、合规审计⼈人员、商务分析师 • Garner预测未来5年年: • AIOps会从功能演变成平台并落地 • 到2022年年,40%企业会使⽤用AIOps 机器器学习促进ITOps的主要⽅方式 降噪、去重 可视化与统计分析 增强描述性 descriptive ⼀一般到极⼤大(IoT) ⼀一般 单条⼤大⼩小 100~10KB 100~10KB < 500 100~10KB 采集难度 ⼀一般 较难 ⼀一般 ⼀一般 加⼯工难度 较难 ⼀一般 简单 较难 价值 ⾼高(尤其安全) ⾼高 随着时间推移变低 ⽐比较⾼高 数据之间的重叠 数据中台的处理理 • 海海量量多样数据的存储/索引: • 时序指标数据、⽂文本数据、⽇日志、⽹网络数据、Tracking等 • 各种分析的⽀支持:0 码力 | 48 页 | 17.54 MB | 1 年前3
Django 官方教程翻译项目/var/www)。但使用 Django 时你不用这样做。而且把所有 Python 代码放在 Web 服务器的根目录不是个好主意,因为这样会 有风险。比如人们可能会在网站上看到你的代码。这不利于网站的安全。 你可以把代码放在文档根目录 以外 的地方,比如 /home/mycode。 让我们看看 startproject 这命令创建了什么: 1. mysite/ 2. manage.py 以肯定的是,一定不会再次出现这个 Bug,因 为只要简单的运行一遍测试,就会立刻收到警告。我们可以认为应用的这一小部分代码永远是安全 的。 我们已经搞定一小部分了,现在可以考虑全面的测试 was_published_recently() 这个方法以确 定它的安全性,然后就可以把这个方法稳定下来了。事实上,在修复一个 Bug 时不小心引入另一个 Bug 会是非常令人尴尬的。 我们在上次写 get_queryset(self): 8. """返回最近发布的五个投票""" 9. return Question.objects.order_by('-pub_date')[:5] 我们需要改进 get_queryset() 方法,让他它能通过将 Question 的 pub_data 属性与 timezone.now() 相比较来判断是否应该显示此 Question。首先我们需要一行 import0 码力 | 103 页 | 1.86 MB | 1 年前3
WeRoBot 1.0.0 微信公众号开发框架文档World!' robot.run() 消息加密 WeRoBot 支持对消息的加密,即微信公众号的安全模式。 为 WeRoBot 开启消 息加密功能,首先需要安装 cryptography pip install cryptography 之后需要在微信公众平台的基本配置中将消息加解密方式选择为安全模式,随 机生成 EncodingAESKey,并且把它传给 WeRoBot 或者 WeRoBot robot.handler 添加的 handler 才会被调用。 robot.key_click —— 回应自定义菜单 @robot.key_click 是对 @robot.click 修饰符的改进。 如果你在自定义菜单中定义了一个 Key 为 abort 的菜单,响应这个菜单的 handler 可以写成这样 @robot.key_click("abort") def abort(): return "I'm a robot" 两者是等价的。 robot.filter —— 回应有指定文本的消息 @robot.filter 是对 @robot.text 修饰符的改进。 现在你可以写这样的代码 @robot.filter("a") def a(): return "正文为 a " import re @robot.filter(re.compile("0 码力 | 48 页 | 65.63 KB | 1 年前3
WeRoBot 1.4.0 微信公众号开发框架文档whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.4.0 文档 » 消息加解密 WeRoBot 支持对消息的加解密,即微信公众号的安全模式。 在开启消息加解 密功能之前,请先阅读微信官方的 消息加解密说明 [https://mp.weixin.qq.com/wiki? t=resource/res_main&id=mp1434696670] 有给出返回值的情况下, 通过 robot.handler 添加的 handler 才会被调用。 robot.key_click —— 回应自定义菜单 key_click() 是对 click() 修饰符的改进。 如果你在自定义菜单中定义了一个 Key 为 abort 的菜单,响应这个菜单的 handler 可以写成这样 @robot.key_click("abort") def abort(): == "abort": return "I'm a robot" 两者是等价的。 robot.filter —— 回应有指定文本的消息 filter() 是对 text() 修饰符的改进。 现在你可以写这样的代码 @robot.filter("a") def a(): return "正文为 a " import re @robot.filter(re.compile("0 码力 | 82 页 | 88.39 KB | 1 年前3
WeRoBot 1.6.0 微信公众号开发框架文档whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.6.0 文档 » 消息加解密 WeRoBot 支持对消息的加解密,即微信公众号的安全模式。 在开启消息加解 密功能之前,请先阅读微信官方的 消息加解密说明 [https://mp.weixin.qq.com/wiki? t=resource/res_main&id=mp1434696670] 有给出返回值的情况下, 通过 robot.handler 添加的 handler 才会被调用。 robot.key_click —— 回应自定义菜单 key_click() 是对 click() 修饰符的改进。 如果你在自定义菜单中定义了一个 Key 为 abort 的菜单,响应这个菜单的 handler 可以写成这样 @robot.key_click("abort") def abort(): == "abort": return "I'm a robot" 两者是等价的。 robot.filter —— 回应有指定文本的消息 filter() 是对 text() 修饰符的改进。 现在你可以写这样的代码 @robot.filter("a") def a(): return "正文为 a " import re @robot.filter(re.compile("0 码力 | 85 页 | 89.26 KB | 1 年前3
WeRoBot 1.5.0 微信公众号开发框架文档whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.5.0 文档 » 消息加解密 WeRoBot 支持对消息的加解密,即微信公众号的安全模式。 在开启消息加解 密功能之前,请先阅读微信官方的 消息加解密说明 [https://mp.weixin.qq.com/wiki? t=resource/res_main&id=mp1434696670] 有给出返回值的情况下, 通过 robot.handler 添加的 handler 才会被调用。 robot.key_click —— 回应自定义菜单 key_click() 是对 click() 修饰符的改进。 如果你在自定义菜单中定义了一个 Key 为 abort 的菜单,响应这个菜单的 handler 可以写成这样 @robot.key_click("abort") def abort(): == "abort": return "I'm a robot" 两者是等价的。 robot.filter —— 回应有指定文本的消息 filter() 是对 text() 修饰符的改进。 现在你可以写这样的代码 @robot.filter("a") def a(): return "正文为 a " import re @robot.filter(re.compile("0 码力 | 83 页 | 88.85 KB | 1 年前3
WeRoBot 1.6.0 微信公众号开发框架文档@robot.key_click("music") def music(message): return '你点击了“今日歌曲”按钮' 消息加解密 WeRoBot 支持对消息的加解密,即微信公众号的安全模式。 在开启消息加解 密功能之前,请先阅读微信官方的 消息加解密说明 [https://mp.weixin.qq.com/wiki? t=resource/res_main&id=mp1434696670] 有给出返回值的情况下, 通过 robot.handler 添加的 handler 才会被调用。 robot.key_click —— 回应自定义菜单 key_click() 是对 click() 修饰符的改进。 如果你在自定义菜单中定义了一个 Key 为 abort 的菜单,响应这个菜单的 handler 可以写成这样 @robot.key_click("abort") def abort(): == "abort": return "I'm a robot" 两者是等价的。 robot.filter —— 回应有指定文本的消息 filter() 是对 text() 修饰符的改进。 现在你可以写这样的代码 @robot.filter("a") def a(): return "正文为 a " import re @robot.filter(re.compile("0 码力 | 94 页 | 74.98 KB | 1 年前3
共 135 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14













