一尘不染

在Flask中,什么是request.args以及如何使用?

flask

我是Flask的新手。我不明白怎么request.args用。我在某处读到它用于返回查询字符串的值[如果我错了,请纠正我]。以及需要多少个参数request.args.get()。我知道当我必须存储提交的表单数据时,我可以使用

fname = request.form.get("firstname")

在此,仅传递一个参数。

考虑下面的代码。分页也已在此代码中完成。

@app.route("/")
def home():
    cnx = db_connect()
    cur = cnx.cursor()
    output = []

    page = request.args.get('page', 1)

    try:
        page = int(page)
        skip = (page-1)*4
    except:
        abort(404)

    stmt_select = "select * from posts limit %s, 4;"
    values=[skip]

    cur.execute(stmt_select,values)
    x=cur.fetchall()

    for row in reversed(x):
        data = {
           "uid":row[0],
           "pid":row[1],
           "subject":row[2],
           "post_content":row[3],
           "date":datetime.fromtimestamp(row[4]),
        }
        output.append(data)

    next = page + 1
    previous = page-1
    if previous<1:
    previous=1
    return render_template("home.html", persons=output, next=next, previous=previous)

在这里,request.args.get()采用两个参数。请解释为什么要使用两个参数以及它的用途。


阅读 2732

收藏
2020-04-06

共1个答案

一尘不染

根据flask.Request.args文件。

flask.Request.args

一个MultiDict,其中包含查询字符串的已解析内容。(URL中问号后的部分)。

因此,MultiDict的args.get()is方法的原型如下:get()

get(key, default=None, type=None)

更新:
在更新版本的flask(v1.0.x和v1.1.x)中, flask.Request.args它是ImmutableMultiDict(不可变的MultiDict),因此上述原型和特定方法仍然有效。

2020-04-06