如何分析 Flak 代码中的常见模式?
How to analyze a common pattern in Flak code?
我正在研究python Flask。
有一个用几个示例代码编写的通用模式。
但我想不通。
我认为无论是 POST 还是 GET 请求,它都会被定向到函数索引,并且它们都将通过相同的路由并得到相同的结果,即 render_template("index.html", form=form, name=name) and name=None 并且 form 是新创建的对象,其 form.validate_on_submit() 为 false。
我不知道如何分析它。请给我线索。
@app.route("/", methods=["GET", "POST"])
def index():
name = None
form = NameForm()
if form.validate_on_submit():
name = form.name.data
form.name.data = ""
return render_template("index.html", form=form, name=name)
你是对的——GET
或 POST
到 /
都将由该路由处理——不同之处在于浏览器访问页面的方式。
form.validate_on_submit()
的意思是"If this is a POST request and all the validation is good, do this..."
因此,当您通过在浏览器中键入 http://localhost:5000/
首次加载 /
网页时,您的浏览器将 GET
页面并加载它。所以 form.validate_on_submit()
将 return False
(因为它是一个 GET
请求)并且 name
值将是 None
.
然后当您填写表格(假定为 <form method="post">
)并点击提交时,将加载相同的路由,但这次是 POST
请求——所以form.validate_on_submit()
现在将是 True
(假设表单有效)并且 name
的值现在将是 name
表单字段中提供的值。
我正在研究python Flask。 有一个用几个示例代码编写的通用模式。 但我想不通。 我认为无论是 POST 还是 GET 请求,它都会被定向到函数索引,并且它们都将通过相同的路由并得到相同的结果,即 render_template("index.html", form=form, name=name) and name=None 并且 form 是新创建的对象,其 form.validate_on_submit() 为 false。 我不知道如何分析它。请给我线索。
@app.route("/", methods=["GET", "POST"])
def index():
name = None
form = NameForm()
if form.validate_on_submit():
name = form.name.data
form.name.data = ""
return render_template("index.html", form=form, name=name)
你是对的——GET
或 POST
到 /
都将由该路由处理——不同之处在于浏览器访问页面的方式。
form.validate_on_submit()
的意思是"If this is a POST request and all the validation is good, do this..."
因此,当您通过在浏览器中键入 http://localhost:5000/
首次加载 /
网页时,您的浏览器将 GET
页面并加载它。所以 form.validate_on_submit()
将 return False
(因为它是一个 GET
请求)并且 name
值将是 None
.
然后当您填写表格(假定为 <form method="post">
)并点击提交时,将加载相同的路由,但这次是 POST
请求——所以form.validate_on_submit()
现在将是 True
(假设表单有效)并且 name
的值现在将是 name
表单字段中提供的值。