flask知识点

flask知识点

    • 1.app.route()中的参数
    • 2. endpoint使用
    • 3.request对象
    • 4.session对象
    • 5.路由重定向
    • 6.视图函数接受路由的传参
    • 7.使用redis存储session
    • 8.模板宏
      • 8.1 定义不带参数宏
      • 8.2 定义带参数宏
      • 8.3 定义带默认参数宏
      • 8.4 调用外部宏
    • 9.模板的闪现

1.app.route()中的参数

app.route(rule, methods=请求类型, endpoint=给路由起别名)

2. endpoint使用

from flask import url_for url_for(‘给路由起的别名’)
如果没有设置endpoint,则默认是rule,如:’/index’ url_for(‘index’)

3.request对象

from flask import request

1)request.method:查看浏览器的请求方式【GET/POST】
2)request.args.get():获取GET请求传递的参数
request.form.get():获取POST请求传递的参数

4.session对象

from flask import session
注:创建session要在配置文件设置SECRET_KEY。session是一个类字典对象,字典有的方法session都有

① 设置session:session[ ] = xxx
② 从session中取值:session.get()
③ 删除session:del session[ ]

5.路由重定向

from flask import redirect
redirect(‘路由’)

6.视图函数接受路由的传参

路由传参规则:
@app.route(’/user/’) 默认传递字符串
@app.route(’/post/’) 传递int
@app.route(’/post/’) 传递float
@app.route(’/post/’) 传递一个路径

7.使用redis存储session

pip install flask-session

① 在配置文件settings.py中添加
PERMANENT_SESSION_LIFETIME = timedelta(minutes=20) # 设置session存到cookie的过期时间
SESSION_TYPE = “redis” # 存储session的类型
SESSION_REDIS = Redis(host=‘x.x.x.x’, port=‘6379’) # session的ip和端口

②在__ini__.py的create_app函数中添加:
from flask_session import Session
# 将session替换成redis session
Session(app)

8.模板宏

8.1 定义不带参数宏

{% macro input() %}

{% endmacro%}

调用:{ { input() }}

8.2 定义带参数宏

{% macro input2(type, value, size) %}

{% endmacro %}

调用:{ { input2(“password”, “”, 50) }}

8.3 定义带默认参数宏

{% macro input3(type=“text”, value="", size=30) %}

{% endmacro %}

调用:{ { input3(“password”, “”, 100) }}

8.4 调用外部宏

外部html:
{% macro input4(type=“text”, value="", size=30) %}

{% endmacro %}

当前html 导入:
{% import “外部.html” as 别名 %}

调用:{ { 别名.input4() }}

9.模板的闪现

  • 返回之前在Flask中通过 flash() 传入的信息列表。把字符串对象表示的消息加入到一个消息队列中,然后通过调用 get_flashed_messages() 方法取出。

视图.py

@app.route("/")
def index():
    if flag:
        # 添加闪现信息
        flash("hello1")
        flash("hello2")
        flash("hello3")
        global flag
        flag = False
    return render_template("index.html")

模板.html

{
     % for message in get_flashed_messages() %}
    {
     {
      message }}
{
     % endfor %}

你可能感兴趣的:(flask)