你所不知道的 Flask Part1:Route 初探

前言

我自己都记不清楚上一次写博客是什么时候了(笑),上一次挖的坑现在还没填完,干脆,开个新坑吧,你不知道的 Flask ,记录下自己用 Flask 过程中一些很好玩的东西,当然很大可能我又会中途弃坑

开篇

引子

之前遇到一个很奇怪的需求,需要在flask中支持正则表达式比如,@app.route('/api/(.*?)') 这样,在视图函数被调用的时候,能传入 URL 中正则匹配的值。不过 Flask 路由中默认不支持这样的方法,那么我们该怎么办?我们先思考五分钟吧?

好了,我先给出解决方案吧

1
2
3
4
5
6
7
8
9
10
from flask import Flask
from werkzeug.routing import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args):
self.map = map
self.regex = args[0]
app = Flask(__name__)
app.url_map.converters['regex'] = RegexConverter

Read More

Share Comments

写在黎明之前

年少之成绩,或有时而可商,年少之作为,或有时而可讨,为此独立之精神,与自由之思想,纵历百十年整,亦与沱江水长流,共三光而永光

其实突然发现,没写过点什么特殊的文字,来纪念自己这一年。

今天,2月10日,距离离职完毕还有五天,距离离开成都还有11天,距离入职,还有17天。坐在自己屋子里,看着窗外的云和雨雾,慢慢的,用一点东西,来纪念自己过去的一年。

Read More

Share Comments

听说你会 Python (2):Python 高阶数据结构解析

前言

之前写过一篇《听说你会 Python ?》的文章,大家反响都还不错,那么我想干脆把这个文章做成一个系列,继续讲解一下 Python 当中那些不为人知的细节吧。然后之前在和师父川爷讨论面试的时候,川爷说了一句“要是我,我就考考你们怎么去实现一个 namedtuple ,好用,方便,又能区分人”,说者无心,听者有意,我于是决定在这次的文章中,和大家聊一聊 Python 中一个特殊的高阶数据结构, namedtuple 的实现。

Read More

Share Comments

用 Python 实现一个最简单的对象模型

一个简单的对象模型

Carl Friedrich Bolz 是一位在伦敦国王大学任职的研究员,他沉迷于动态语言的实现及优化等领域而不可自拔。他是 PyPy/RPython 的核心开发者之一,于此同时,他也在为 Prolog, Racket, Smalltalk, PHP 和 Ruby 等语言贡献代码。这是他的 Twitter @cfbolz

Read More

Share Comments

听说你会 Python ?

前言

最近觉得 Python 太“简单了”,于是在师父川爷面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是川爷嘴角闪过了一丝轻蔑的微笑(内心 OS:Naive!,作为一个 Python 开发者,我必须要给你一点人生经验,不然你不知道天高地厚!)于是川爷给我了一份满分 100 分的题,然后这篇文章就是记录下做这套题所踩过的坑。

Read More

Share Comments

Swift 声明式程序设计

在我第一份 iOS 开发工程师的工作中,我编写了一个 XML 解析器和一个简单的布局工具,两个东西都是基于声明式接口。XML 解析器是基于 .plist 文件来实现 Objective-C 类关系映射。而布局工具则允许你利用类似 HTML 一样标签化的语法来实现界面布局(不过这个工具使用的前提是已经正确使用 AutoLayout & CollectionViews)。

尽管这两个库都不完美,它们还是展现了声明式代码的四大优点:

  • 关注点分离: 我们在使用声明式风格编写的代码时声明了意图,从而无需关注具体的底层实现,可以说这样的分离是自然发生的。
  • 减少重复的代码: 所有声明式代码都共用一套样式实现,这里面很多属于配置文件,这样可以减少重复代码所带来的风险。
  • 优秀的 API 设计: 声明式 API 可以让用户自行定制已有实现,而不是将已有实现做一种固定的存在看待。这样可以保证修改程度降至最小。
  • 良好的可读性: 讲真,按照声明式 API 所写出来的代码简直优美无比。

    Read More

Share Comments

Python 描述符入门指北

很久都没写 Flask 代码相关了,想想也真是惭愧,然并卵,这次还是不写 Flask 相关,不服你来打我啊(就这么贱,有本事咬我啊
这次我来写一下 Python 一个很重要的东西,即 Descriptor (描述符)

Read More

Share Comments

Swift 3 中的函数参数命名规范指北

昨天,我开始将这个 Jayme 迁移到 Swift 3。这是我第一次将一个项目从 Swift 2.2 迁移至 Swift 3。说实话这个过程十分的繁琐,由于 Swift 3 在老版本基础上发生了很多比较大的改变,我不得不承认眼前这样一个事实,除了花费较多的时间以外,没有其余的捷径可走。不过这样的经历也带来一点好处:我对 Swift 3 的理解变得更为深入,对我来讲,这可能是最好的消息了。😃

在迁移代码的过程中,我需要做出很多的选择。更为蛋疼的是,整个迁移过程并不是修改代码那么简单,你还需要用耐心去一点点适应 Swift 3 中带来的新变化。某种意义上来讲,修改代码只是整个迁移过程的开始而已。

如果你已经决定将你的代码迁移到 Swift 3 ,我建议你去看看这篇文章来作为你万里长征的第一步。

如果一切顺利的话,在不久以后,我将回去写一篇博客来记录下整个迁移过程中的点点滴滴,包括我所作出的决定等等。但是眼前,我将会把注意力集中在一个非常非常重要的问题上:怎样正确的编写函数签名.

Read More

Share Comments

聊聊 Python 中生成器和协程那点事儿

写在前面的话

本来想这周继续写写 Flask 那点破事儿的,但是想了想决定换换口味,来聊聊很不容易理解但是很重要的 Python 中的生成器和协程。

Read More

Share Comments

「最简单」的 Core Data 上手指南

在过去的几个月里,我花费了大量的时间在研究 Core Data 之上,我得去处理一个使用了很多陈旧的代码,糟糕的 Core Data 以及违反了多线程安全的项目。讲真,Core Data 学习起来非常的困难,在学习 Core Data 的时候,你肯定会感到迷惑和一种深深的挫败感。正是因为这些原因,我决定给出一种超级简单的解决方案。这个方案的特点就是简洁,线程安全,非常易于使用,这个方案能满足你大部分对于 Core Data 的需求。在经过若干次的迭代后,我所设计的方案最终成为一个成熟的方案。

Read More

Share Comments