|
17 | 17 | # ============================================================================================================================= |
18 | 18 |
|
19 | 19 | # Flask支持的4种钩子函数 |
20 | | -# ================================================================================================= |
| 20 | +# ============================================================================================================================= |
21 | 21 | # before_first_request: 注册一个函数,在处理第一个请求之前运行。 |
22 | 22 | # before_request: 注册一个函数,在每次请求之前运行。 |
23 | 23 | # after_request: 注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。 |
24 | 24 | # teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。 |
25 | | -# ================================================================================================= |
| 25 | +# ============================================================================================================================= |
| 26 | + |
| 27 | +# Jinja2模板使用 |
| 28 | +# ============================================================================================================================= |
| 29 | +# 渲染模板: render_template("user.html", name=name) |
| 30 | +# (1) 变量: {{ name | capitalize }} |
| 31 | +# (2) 控制结构: |
| 32 | +# {% if user %} |
| 33 | +# Hello, {{ user }}! |
| 34 | +# {% else %} |
| 35 | +# Hello, Stranger! |
| 36 | +# {% endif %} |
| 37 | +# |
| 38 | +# <ul> |
| 39 | +# {% for comment in comments %} |
| 40 | +# <li>{{ comment }}</li> {% endfor %} |
| 41 | +# </ul> |
| 42 | +# (3) 宏-类似于函数: |
| 43 | +# {% macro render_comment(comment) %} |
| 44 | +# <li>{{ comment }}</li> |
| 45 | +# {% endmacro %} |
| 46 | +# |
| 47 | +# <ul> |
| 48 | +# {% for comment in comments %} |
| 49 | +# {{ render_comment(comment) }} |
| 50 | +# {% endfor %} |
| 51 | +# </ul> |
| 52 | +# ============================================================================================================================= |
26 | 53 |
|
27 | 54 | # Jinja2变量过滤器 |
28 | | -# ================================================================================================= |
| 55 | +# ============================================================================================================================= |
29 | 56 | # safe: 渲染值时不转义 |
30 | 57 | # capitalize: 把值的首字母转换成大写,其他字母转换成小写 |
31 | 58 | # lower: 把值转换成小写形式 |
32 | 59 | # upper: 把值转换成大写形式 |
33 | 60 | # title: 把值中每个单词的首字母都转换成大写 |
34 | 61 | # trim: 把值的首尾空格去掉 |
35 | 62 | # striptags: 渲染之前把值中所有的 HTML 标签都删掉 |
36 | | -# ================================================================================================= |
| 63 | +# ============================================================================================================================= |
37 | 64 |
|
38 | 65 | # Flask-Bootstrap基模板中定义的块 |
39 | | -# ================================================================================================= |
| 66 | +# ============================================================================================================================= |
40 | 67 | # doc: 整个 HTML 文档 |
41 | 68 | # html_attribs: <html> 标签的属性 |
42 | 69 | # html: <html> 标签中的内容 |
|
49 | 76 | # navbar: 用户定义的导航条 |
50 | 77 | # content: 用户定义的页面内容 |
51 | 78 | # scripts: 文档底部的 JavaScript 声明 |
52 | | -# ================================================================================================= |
| 79 | +# ============================================================================================================================= |
53 | 80 |
|
54 | | -# WTForms支持的HTML标准字段 |
55 | | -# ================================================================================================= |
| 81 | +# WTForms支持的HTML标准字段,注意添加app.config['SECRET_KEY'] = 'hard to guess string' |
| 82 | +# ============================================================================================================================= |
56 | 83 | # StringField 文本字段 |
57 | 84 | # TextAreaField 多行文本字段 |
58 | 85 | # PasswordField 密码文本字段 |
|
70 | 97 | # SubmitField 表单提交按钮 |
71 | 98 | # FormField 把表单作为字段嵌入另一个表单 |
72 | 99 | # FieldList 一组指定类型的字段 |
73 | | -# ================================================================================================= |
| 100 | +# ============================================================================================================================= |
74 | 101 |
|
75 | 102 | # WTForms验证函数 |
76 | | -# ================================================================================================= |
| 103 | +# ============================================================================================================================= |
77 | 104 | # Email 验证电子邮件地址 |
78 | 105 | # EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况 |
79 | 106 | # IPAddress 验证 IPv4 网络地址 |
|
85 | 112 | # URL 验证 URL |
86 | 113 | # AnyOf 确保输入值在可选值列表中 |
87 | 114 | # NoneOf 确保输入值不在可选值列表中 |
88 | | -# ================================================================================================= |
| 115 | +# ============================================================================================================================= |
89 | 116 |
|
90 | 117 | # uWSGI配置和nginx配置 |
| 118 | +# ============================================================================================================================= |
91 | 119 | # uwsgi -s /tmp/uwsgi.sock -w MyShow:app --chmod-socket=666 |
92 | 120 | # server { |
93 | 121 | # listen 80; |
|
99 | 127 | # include uwsgi_params; |
100 | 128 | # uwsgi_pass unix:/tmp/uwsgi.sock; |
101 | 129 | # } |
| 130 | +# ============================================================================================================================= |
0 commit comments