1、Flask 路由:route()装饰器用于将URL绑定到函数
@app.route(‘/hello’)
def hello_world():
return ‘hello world’
add_url_rule()函数也可用于将URL与函数绑定
def hello_world():
return ‘hello world’
app.add_url_rule(‘/’, ‘hello’, hello_world)
2、Flask 变量规则:通过向规则参数添加变量部分,可以动态构建URL
# 此变量部分标记为<variable-name>。它作为关键字参数传递给与规则相关联的函数
@app.route('/hello/<name>')
def hello_name(name):
return 'Hello %s!' % name
# 除了默认字符串变量部分之外,还有 int、float、path
@app.route('/blog/<int:postID>')
def show_blog(postID):
return 'Blog Number %d' % postID
@app.route('/rev/<float:revNo>')
def revision(revNo):
return 'Revision Number %f' % revNo
3、Flask URL构建
url_for()函数对于动态构建特定函数的URL非常有用。
该函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分。
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))
4、Flask HTTP方法
GET:以未加密的形式将数据发送到服务器。最常见的方法。
HEAD:和GET方法相同,但没有响应体。
POST:用于将HTML表单数据发送到服务器。POST方法接收的数据不由服务器缓存。
PUT:用上传的内容替换目标资源的所有当前表示
DELETE:删除由URL给出的目标资源的所有当前表示。
5、Flask 模板template
return render_template('student.html', result=res)
{% ... %}用于语句
{{ ... }}用于表达式可以打印到模板输出
{# ... #}用于未包含在模板输出中的注释
# ... ##用于行语句
6、Flask 静态文件 static
特殊端点'static'用于生成静态文件的URL
例如javascript文件或支持网页显示的CSS文件
<script type = "text/javascript"
src = "{{ url_for('static', filename = 'hello.js') }}" >
</script>
7、Flask Request对象
来自客户端网页的数据作为全局请求对象发送到服务器
Request对象的重要属性:
Form - 它是一个字典对象,包含表单参数及其值的键和值对。
args - 解析查询字符串的内容,它是问号(?)之后的URL的一部分。
Cookies - 保存Cookie名称和值的字典对象。
files - 与上传文件有关的数据。
method - 当前请求方法。
8、Flask Cookies
Cookie以文本文件的形式存储在客户端的计算机上。其目的是记住和跟踪与客户使用相关的数据,以获得更好的访问者体验和网站统计信息。
Request对象包含Cookie的属性。它是所有cookie变量及其对应值的字典对象.
使用make_response()对响应对象设置cookie, 响应对象的set_cookie()函数来存储cookie。
request.cookies属性的get()方法用于读取cookie。
resp = make_response(...)
resp.set_cookie('userID', user)
name = request.cookies.get('userID')
9、Flask Sessions(会话)
Session(会话)数据存储在服务器上, Session对象也是一个字典对象,包含会话变量和关联值的键值对
Flask应用程序需要一个定义的SECRET_KEY
设置一个'username'会话变量:
Session[‘username’] = ’admin’
要释放会话变量,请使用pop()方法:
session.pop('username', None)
10、Flask 重定向和错误
redirect()函数。调用时,它返回一个响应对象,并将用户重定向到具有指定状态代码的另一个目标位置。
Flask.redirect(location, statuscode, response)
Flask类具有带有错误代码的abort()函数: Flask.abort(code)
400 - 用于错误请求
401 - 用于未身份验证的
403 - Forbidden
404 - 未不到
406 - 表示不接受
415 - 用于不支持的媒体类型
429 - 请求过多
11、Flask 消息闪现
flash(message, category)可以在一个视图中创建消息,并在名为next的视图函数中呈现它。
message参数是要闪现的实际消息
category参数是可选的。它可以是“error”,“info”或“warning”
get_flashed_messages():从会话中删除消息