flask

flask框架

一个完整的程序:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
return 'Hello World!'


if __name__ == '__main__':
app.run()

Flask上下文全局变量

变量名 上下文 说明
current_app 程序上下文 当前激活程序的程序实例
g 程序上下文 处理请求是用作临时存储对象,每次请求都会重设这个变量
request 请求上下文 请求对象,封装了客户端发出的TTP请求 中的内容
session 请求上下文 用户会话,用于存储请求之间需要“记住”的值得词典

请求钩子

Flask提供了注册通用函数的功能,注册的函数可在请求被分发到视图函数之前或之后调用。

请求钩子用装饰器实现,Flask支持四种钩子

before_first_request 注册一个函数,在处理第一个请求之前运行
before_request 注册一个函数,在每次请求之前运行
after_request 注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行
teardown_request 注册一个函数,即使有未处理的异常抛出,也在每次请求之后运行

响应

1.视图函数返回的响应的参数:

2.Response对象

3.重定向的特殊响应类型:redirect()

4.abort()生成特殊响应

模板

jinja2模板引擎

1.在template文件夹中建立相应的html文件

2.渲染使用reder_template()

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')
def hello_world():
return render_template('index.html')

@app.route('/user/<name>')
def user(name):
return render_template('user.html',name=name)



if __name__ == '__main__':
app.run()

变量

{{name}} 结构表示一个变量,他是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取

过滤器修改变量

hello,{{name|capitalize}}

Jinja2过滤器

过滤器名 说明
safe 渲染时不转义
capitalize 把值得首字母转换成大写,其他字母转换成小写
lower 把值转换成小写形式
upper 把值转换成大写形式
title 把值中每个单词的首字母都转换成小写
trim 把值得首尾空格去掉
striptags 渲染之前把值中所有的HTML标签都删掉

safe过滤器:默认情况下,处于安全考虑,Jinja2会转义所有变量,很多情况下需要变量中存储的HTML代码,就可以使用safe过滤器

控制结构

1.条件控制语句
2.for循环
3.宏
4.多出重复的代码可以写入单独文件中,再包含在所有模板中(incliude)
5.模板继承
6.super()

Flask_Bootstrap

Flask_Bootstrap基模板中定义的块

块名 说明
doc 整个HTML文档
html_attribs <html>标签的属性
html <html>标签中的内容
head <head>标签中的内容
title <title>标签中的内容
metas 一组<meta>标签
styles 层叠样式表定义
body_attribs <body>标签中的属性
body <body>标签中的内容
navbar 用户定义的导航条
content 用户定义的页面内容
scripts 文档底部的JavaScripts声明

自定义错误页面

链接

url_for()函数的使用

Flask_Moment本地化日期和时间

Web表单

Flask_WTF

CSRF攻击

定义表单类

from flask_wtf import Form
from wtforms import StringField
from wtforms.validators import DataRequired

class MyForm(Form):
name = StringField('name', validators=[DataRequired()])

把表单渲染成HTML

在视图函数中处理表单

重定向和用户会话

flask消息

使用Flask_SQLAlchemy管理数据库

配置数据库

定义模型

posted @ 2019-04-21 13:02  乄一叶知秋  阅读(173)  评论(0编辑  收藏  举报