首页 > 技术文章 > Flask编程基础

wangshx666 2020-05-12 16:33 原文

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():从会话中删除消息

推荐阅读