• Stars
    star
    179
  • Rank 212,772 (Top 5 %)
  • Language
    Python
  • License
    Other
  • Created about 6 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Flask 0.1版本源码注解。

Flask-Origin

Flask 0.1版本源码注解*。

注解:这里的“注解” = 源码本身包含的注释、文档字符串的翻译与简化 + 添加更多必要的注释 + 添加更多有助于理解的额外提示

源码版本

为了方便不同的阅读需求,源码设置了下面几个标签:

  • mini:去除所有注释和文档字符串
  • origin:原版
  • translated:翻译所有注释和文档字符串
  • annotated:添加注解

你可以使用下面的方式签出某个版本,以mini为例:

$ git clone https://github.com/greyli/flask-origin
$ cd flask-origin
$ git checkout mini

注意:0.1版本源码中的部分API在最新版本已经发生了变化,请勿将源码中的API用于实际开发。

阅读前

为了更容易理解Flask的实现原理,你需要对WSGI协议以及HTTP协议有一些了解,建议先简单浏览下面的基本知识:

阅读后

Flask内部实现大量依赖于Werkzeug,包括请求和响应对象,路由匹配,URL生成等等,你可以阅读Werkzeug的文档来深入了解这些内容的具体实现。另外,如果你对模板渲染部分的内容感兴趣,也可以考虑阅读Jinja2文档:

注意:新版本的Werkzeug和Jinja2已经发生很大的变化,0.1版本的Flask对应的Werkzeug源码版本为0.6.1,对应的Jinja2源码版本为2.4。上述文档链接分别为0.14和2.9版本,请谨慎参考。

下一步

由于篇幅所限,部分概念(比如本地上下文相关的本地线程、本地堆栈、本地代理)并没有深入介绍。而且,相对于通过代码编写的顺序从上往下阅读,通过调用逻辑阅读,或是以某个功能实现作为切入点来阅读可以更容易理解Flask的工作方式。为此,你可以考虑阅读《Flask Web开发实战》第16章,它主要包含下面这些内容:

  • WSGI实现介绍
  • Flask设计理念
  • Flask发行版本分析
  • Flask工作原理和机制解析
    • Flask中的请求响应循环
    • 路由系统
    • 本地上下文
    • 请求与响应对象
    • session
    • 蓝本
    • 模板渲染

License

本项目使用MIT协议授权,基于Flask原项目的BSD协议对相关文件进行了删改,具体参见LICENSE文件。

More Repositories

1

bootstrap-flask

Bootstrap 4 & 5 helper for your Flask projects.
SCSS
1,109
star
2

flask-tutorial

Flask 入门教程 / Flask for Beginners
HTML
804
star
3

watchlist

Example application for Flask tutorial "Flask 入门教程".
Python
260
star
4

flask-dropzone

Upload files in Flask application with Dropzone.js.
Python
250
star
5

flask-ckeditor

CKEditor integration for Flask, including image upload, code syntax highlight, and more.
JavaScript
199
star
6

flask-examples

Example applications for Flask learners.
JavaScript
185
star
7

flask-jobs

Flask-related job opportunities.
74
star
8

todo

This project is deprecated in favour of Todoism.
HTML
66
star
9

timer

A simple countdown timer made with Flask and JavaScript.
CSS
55
star
10

calculator

A Calculator made by Flask and JavaScript.
HTML
48
star
11

flask-avatars

All avatar generators in one place.
JavaScript
28
star
12

flask-upload-dropzone

Flask File Upload with Dropzone.js.
JavaScript
28
star
13

cloud-drive

A minimal photo upload and manage system with Flask and Flask-Uploads (Multiple file upload support!).
Python
26
star
14

flask-share

Create social share component in Jinja2 template based on share.js.
Python
20
star
15

guess

A Flask version of "Guess the Number" game.
HTML
20
star
16

flemi-api

Flemi API
Python
10
star
17

github-login

Example application for login with GitHub by GitHub-Flask
Python
8
star
18

flask-structure

Different application structure for Flask.
Python
3
star
19

flemi-front

The frontend part of the Flemi project
TypeScript
1
star
20

flask-sse-demo

Example application for Server-Sent Event by Flask-SSE
HTML
1
star