MyBatis Generator XML 配置详解

1. 配置文件 固定的文件头, 约束和根结点 1 2 3 4 5 6 7 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- .... --> </generatorConfiguration> 1.1 properties 标签 用于引入外部的 properties 文件, 只能出现一次或者不使用,

RTFSC: Flask 的源码阅读(三)

1. 路由的实现 有两种方式来添加路由, 通常使用装饰器来添加, 其内部也是通过第二种 add_url_rule() 方法, 装饰器是一种简洁明了的方式. 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Ertitle: python 类的属性

1. 下划线问题 单下划线 _ 开头, 约定的类内部*‘私有’* 属性, 也可能在类外部调用, 但尽量不调用 仅以双下划线 __ 开头, 那么会

RTFSC: Flask 的源码阅读(一)

使用自带的单线程 server 看源码 1. 从 WSGI 开始 一个最简单的 Flask 程序 1 2 3 4 5 6 7 8 9 10 from flask import Flask app = Flask(__file__) @app.route('/') def index(): return 'Hello, world' if __name__ == '__main__': app.run() 在 run() 方法中可以看到调用了 werkzeug.serving.run_simple() 来运行

RTFSC: Flask 的源码阅读(二)

1. 路由派发 由 Flask.full_dispatch_request() 发起路由派发 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def full_dispatch_request(self): # before_first_request 的回调 self.try_trigger_before_first_request_functions() try: # signal 注册的回调 request_started.send(self) # before_request 的回调, 在这我们也可以看到 # 只有 before_request 回调中返回 None, 才

python tips

1 2 3 4 5 6 7 a = (1, 2, [3, 4]) a[2] += [5, 6] # 以上在 python 3.6.5 中抛出了 TypeError, 但 a[2] 的值还是变成了 [3, 4, 5, 6] # 这是因为 a[2] 在增量时是分成两步 # 一是把 a[2] 的列表值入栈, 扩展