|
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