# _*_ coding: utf-8 _*_ # Flask中的一些定义 # ============================================================================================================================= # WSGI: Web服务器网关接口,是一种Web服务使用的协议。 # 路由: 处理URL和函数之间关系的程序称为"路由"。 # 视图函数: 类似于index()这样的,被app.route装饰器注册为路由的函数,或者通过app.add_url_rule()添加路由映射关系的函数,被称为视图函数。 # app.route(): 路由装饰器,可以带参数,参数可以指定数据类型:int/float/path。path类似于字符串,但不将反斜线/当做分隔符。 # ============================================================================================================================= # Flask上下文全局变量 # ============================================================================================================================= # current_app: 程序上下文,当前激活程序的程序实例,所有线程公用一个该实例。 # g: 程序上下文,处理请求时用作临时存储的对象,每次请求都会重设这个变量。 # request: 请求上下文,请求对象,封装了客户端发出的 HTTP 请求中的内容,不同线程之间互不干扰。 # session: 请求上下问,用户会话,用于存储请求之间需要“记住”的值的词典。 # ============================================================================================================================= # Flask支持的4种钩子函数 # ============================================================================================================================= # before_first_request: 注册一个函数,在处理第一个请求之前运行。 # before_request: 注册一个函数,在每次请求之前运行。 # after_request: 注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行。 # teardown_request:注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行。 # ============================================================================================================================= # Jinja2模板使用 # ============================================================================================================================= # 渲染模板: render_template("user.html", name=name) # (1) 变量: {{ name | capitalize }} # (2) 控制结构: # {% if user %} # Hello, {{ user }}! # {% else %} # Hello, Stranger! # {% endif %} # # # (3) 宏-类似于函数: # {% macro render_comment(comment) %} #
  • {{ comment }}
  • # {% endmacro %} # # # ============================================================================================================================= # Jinja2变量过滤器 # ============================================================================================================================= # safe: 渲染值时不转义 # capitalize: 把值的首字母转换成大写,其他字母转换成小写 # lower: 把值转换成小写形式 # upper: 把值转换成大写形式 # title: 把值中每个单词的首字母都转换成大写 # trim: 把值的首尾空格去掉 # striptags: 渲染之前把值中所有的 HTML 标签都删掉 # ============================================================================================================================= # Flask-Bootstrap基模板中定义的块 # ============================================================================================================================= # doc: 整个 HTML 文档 # html_attribs: 标签的属性 # html: 标签中的内容 # head: 标签中的内容 # title: 标签中的内容 # metas: 一组 <meta> 标签 # styles: 层叠样式表定义 # body_attribs: <body> 标签的属性 # body: <body> 标签中的内容 # navbar: 用户定义的导航条 # content: 用户定义的页面内容 # scripts: 文档底部的 JavaScript 声明 # ============================================================================================================================= # WTForms支持的HTML标准字段,注意添加app.config['SECRET_KEY'] = 'hard to guess string' # ============================================================================================================================= # StringField 文本字段 # TextAreaField 多行文本字段 # PasswordField 密码文本字段 # HiddenField 隐藏文本字段 # DateField 值为datatime.data格式的文本字段 # DateTimeField 值为datatime.datatime格式的文本字段 # DecimalField 值为decimal.Decimal格式的文本字段 # IntegerField 值为整数的文本字段 # FloatField 值为浮点数的文本字段 # BooleanField 值为True或False的复选框 # RadioField 一组单选框 # SelectField 值唯一的下拉列表 # SelectMultipleField 可选多个值得下拉列表 # FileField 文件上传字段 # SubmitField 表单提交按钮 # FormField 把表单作为字段嵌入另一个表单 # FieldList 一组指定类型的字段 # ============================================================================================================================= # WTForms验证函数 # ============================================================================================================================= # Email 验证电子邮件地址 # EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况 # IPAddress 验证 IPv4 网络地址 # Length 验证输入字符串的长度 # NumberRange 验证输入的值在数字范围内 # Optional 无输入值时跳过其他验证函数 # Required / DataRequired 确保字段中有数据 # Regexp 使用正则表达式验证输入值 # URL 验证 URL # AnyOf 确保输入值在可选值列表中 # NoneOf 确保输入值不在可选值列表中 # ============================================================================================================================= # uWSGI配置和nginx配置 # ============================================================================================================================= # uwsgi -s /tmp/uwsgi.sock -w MyShow:app --chmod-socket=666 # server { # listen 80; # server_name wangluopachong.com; # # charset utf-8; # # location / { # include uwsgi_params; # uwsgi_pass unix:/tmp/uwsgi.sock; # } # =============================================================================================================================