» 代码折腾所

你所知的,你所不知的,我都告诉你。

July 12, 2018, 1 comment, 碎碎念,奇思妙想,代码折腾所

自制 Web 框架的那些事儿

不想造轮子的程序员不是一个好码农。 —— 鲁迅

February 21, 2018, 2 comments, 代码折腾所

浅谈 Web 用户验证的几种方式

这片文章试图介绍清楚网站前端与后端之间数据交流时用到的技术,诸如 Session,Cookies,Token,Jwt 等等;同时解释清楚几个初学者容易混淆的地方。

November 28, 2017, 1 comment, 代码折腾所

用 Webpack 和 React 搭建一个适用于 Chrome Extension 的脚手架

做为一个不称职的前端设计师,对于前端的框架,尤其是各式各样的 JavaScript 框架,我都是习惯使用官方自带的 CLI 工具来搭建脚手架的。因为在混乱的前端世界中,BabelWebpack 的配置不是一般的麻烦。而且我对于前端的学习就是冲着写 Side Project 去的,所以效率对我来多很重要。

我选择的前端框架是 React + Redux,同时也有一个很好用的 CLI 工具来初始化 React 项目:create-react-app。对于像我这样的懒人来说,这确实很好用,但同时也有不少缺点。

我是一个勤勤恳恳的 Python 工程师,所以使用装饰器是我的日常,同时 JavaScript 在 ES7 的 Proposal 中也有类似的装饰器提议,那么使用装饰器肯定是必不可少的了。Create-Reat-App 的最大问题就在于不支持装饰器

June 21, 2017, 代码折腾所

关于 HTTP OPTIONS

本文参考了两篇文章:

首先 OPTIONS 方法不应该像 GET, POST, PUT 等方法一样返回内容,它返回的应该就只有Header。

OPTIONS 的功能基本上只有两个:

  • 在普通访问中,它会返回同 URL 中允许访问的 METHODS
  • 在跨域访问 (CORS) 中,返回对应的原站 (Origin) 能访问的METHODS

April 19, 2017, 2 comments, 代码折腾所

Misuzu 偏执的 WEB 框架

我是一个不折不扣的偏执狂,所以我认为所谓的产品就应该是为了特定的人群而服务的。这同样适用于 WEB 框架。

现在 Python 中的三大 WEB 框架(Flask, Tornado, Django) 都属于通用型框架,并不存在一个为 API ,尤其是 REST API 设计的框架。这也是 Misuzu 被创建的原因之一。

February 8, 2017, 2 comments, 代码折腾所

Python Web 从入门到放弃:Flask or Tornado

Python Web 这个领域一直都处于不温不火的情况,但是因为 Python 的易上手性,导致了一部分人也在坚持着这一个领域。
Python Web 框架主要有: Django、Flask、Tornado。

这三大党派都有自己坚持的理由:

  • Django Full Stack 式的开发模式,开发者查看官方文档即可实现大部分网站的大部分功能。
  • Flask Minimal 的框架,框架内部只实现了基础功能。Extensionable 的设计,让你的绝大部分功能都可以通过其他开发者完成的 Extension 来实现。
  • Tornado 三者中唯一一个异步框架,Web Framework 和 HTTPClient 的结合,同时也是一个简约的设计。

January 6, 2017, 代码折腾所

Rust Web初试

Rust 是最近中意的一门语言。相比于 C 和 C++,我更加喜欢 Rust 的语法。

奈何 Rust 的学习曲线太陡了,一直都只能在入门阶段徘徊,没能深入了解 Rust。 个人感觉最大的问题在于没能搞懂 Rust 的所有权、引用借用和生命周期三个方面。

因此,我尝试着用 Rust 来进行 Web 开发,从而加深对 Rust 语法的了解。

December 19, 2016, 代码折腾所

Python args 解析库 click

click

前段时间,需要用 Python 来写一个 CLI 程序的时候,只能找到比较好的命令行参数解析库 getopt 和 argparse。可是这两个库都不太 Pythonistic。

私以为 Python 最大的亮点/语法糖就是在于装饰器的优雅,一个好的 Python 库必然有很好的装饰器使用。

November 25, 2016, 5 comments, 代码折腾所

如何正确的部署 Flask 项目

系统 Python 设置

由于每个 Linux 发行版的内置 Python 都不太一样,而且为了避免你的项目在不同的 Python 版本下出现各种奇怪问题。

比如,requests 库在 python 2.7.5 的环境下访问 HTTPS 网站会出现 SNI 的问题,导致访问失败。

所以我们需要使用 pyenvvirtualenv

注:强烈不建议直接更新系统里面的 Python ,否则你会出现各种各样的奇怪问题

June 25, 2016, 2 comments, 代码折腾所

HOOK机制浅谈与实现

HOOK机制最常见的地方就是在 windows 系统里面。你可以通过 HOOKS 来监控键盘输入、鼠标点击等等。那到底什么是 HOOK 机制呢?用人话讲就是“允许在特定的行为前后添加自定义行为”

# before doing
do something...
# after doing