Web 应用开发标准流程【笔记】

产品分析 用户需求 竞品分析 市场调研 技术选型 前端技术选型 后端技术选型 数据库 业务框架(与当前业务紧密相连的技术框架) 开发实现 前后端开发,测试 前后端部署 前后端升级 业务框架 生产上线 部署升级 峰值处理(如电商网站“双十一”的峰值) 成本优化 警报处理(网络掉线,机器死机等异常处理)   注:真实场景根据业务不同差别较大。web 应用开发标准并不统一,但都是在基础上衍生而

理解 Python 中的装饰器

一直觉得装饰器很神奇。如 Flask 中用到的路由装饰器: @app.route('/') def hello_world(): return 'Hello World! 看了《简单 12 步理解 Python 装饰器》,有些心得,记录一下新知识。 1、内嵌函数 Python 允许创建内嵌函数。即可以在函数内部声明函数,并且所有的作用域和生命周期规则仍然适用。 >>> def o

Python 中的 __name__ 变量

写 Python 程序的时候,经常会写到 if __name__ == '__main__': ,一直没有很好地理解。Flask 文档提到了一下,顺便做了小实验,总算搞清楚了。 __name__ 变量的值是变化的。假设有个 name.py 文件,如果直接运行它,__name__ 的值为 '__main__';如果从其他地方作为模块导入(import name),__name__ 的值为模块名,即

提速 | 给 pip 指定豆瓣源

实测,pip 指定国内源后,速度、稳定性有很大提升。 两种方式: 1、手动指定 例如: pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com flask 2、写入配置文件 在 ~/.pip/pip.conf 文件(没有则创建)中写入: trusted-host=pypi.douba

virtualenv 的使用及 flask 的安装(笔记)

virtualenv 解决了什么问题?如果你像我一样喜欢 Python,不仅会在采用 Flask 的Web 应用中用上 virtualenv,在别的项目中你也会想用上它。你拥有的项目越多,同时使用不同版本的 Python 工作的可能性也就越大,或者起码需要不同版本的 Python 库。悲惨现实是:常常会有库破坏向后兼容性,然而正经应用不采用外部库的可能微乎其微。当在你的项目中,出现两个或更多依赖性

oh-my-zsh 中没有 virtualenv 提示/oh-my-zsh 插件

oh-my-zsh 中,用 source venv/bin/activate 激活 virtualenv 时,发现 shell 提示符中没有出现提示。 解决方案 修改 ~/.oh-my-zsh/plugins/virtualenv/virtualenv.plugin.zsh, 注释掉 export VIRTUAL_ENV_DISABLE_PROMPT=1 即可。 因为 oh-my-zsh 的 vi

进德修业

徳者,得也。足于己,不待于外。 对外界的人事物有依赖,有欲求,便不自由。不要被欲念牵着鼻子走。讨厌“有求于人”的状态,人会不自觉地变得软弱、谄媚,曲意逢迎。安能摧眉折腰事权贵,使我不得开心颜? 也不是要离群索居。鱼不可离于渊。江湖中,处处是关系。关系即内外的联系,自己与外界一切人事物的联系。 重点是,如何处理各种关系。 先把焦点从外界转移到自身,然后由内而外,逐步充实扩展。世间事,有的是可以把握的

Flask 快速搭建 FineReport Http 认证服务器

本文讨论的是 Flask 最基本的用法。 先看 FineReport 的 HTTP 认证:http://help.finereport.com/doc-view-706.html 其中 3.1节,写一个简单的 Servlet,作为 HTTP 认证服务器。 可以用 python Flask 来写,非常快速。 代码如下: # import ipdb from flask import request

Python 用 Shell 通配符匹配字符串

Python 有一种介于普通字符串方法和正则表达式之间的字符串匹配方式——用 Shell 通配符匹配。 fnmatch 模块提供了两个函数—— fnmatch() 和 fnmatchcase() ,可以用来实现这样的匹配。这两个函数的区别在于: fnmatch() 大小写敏感性依赖于当前操作系统 fnmatchcase() 大小写敏感 使用范例: In : from fnmatch impo

http 参数中传递特殊字符需要先编码

遇到一个客户bug:远程设计密码有特殊字符,没法登陆 调试发现,客户端设计器设置密码 "1+1",通过http请求发送到服务端时,内容变成了"1 1"。特殊字符丢失了。 跟老大描述了情况,老大轻描淡写一句话,“encode 一下就行了”。然后我就试了下,果然就行了。。。 贴上核心代码片段: para.put("user", user); password = URLEncoder.encode(p