我的目标是运行一个Flask应用程序,该应用程序将获得此表单的URL,其中的id各不相同:
http://localhost:5000/Longword/game?firstid=123&secondid=456&thirdid=789
返回一个简单的页面,输出如下内容
First id = 123, second id = 456, third id = 789
我运行这个脚本,当在示例URL
中进行硬编码时,我不能让请求参数返回任何内容,但不能返回任何内容。我已经尝试过将int格式化为字符串和其他类似的东西——在任何情况下都不能让请求参数工作。
import os
import json
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def main():
return "on main home page"
@app.route('/longword/gameid=123&playerid=456')
def Longword():
user = request.args.get('gameid')
return "got hardcode %d" % gameid
我的第二个问题是,在我可以让请求参数继续运行之后,我不能配置route()
来处理变量URL
,我只能通过将页面硬编码到route来加载页面。我使用sessions单独尝试了一下,但同样没有成功。
在
?
之后需要route('/longword/')
无参数然后可以在
?
之后使用参数运行在函数中,您可以使用
request.args.get()
获取这个参数最后一件事:即使发送数字,参数也是字符串,因此需要
%s
,而不是%d
顺便说一句:你可以运行这个网址也没有一些参数即
你可以用
request.args.get()
设置默认值如果不使用自己的默认值,则
request.args.get()
将使用None
不要混淆查询参数和路径参数。
路径参数
路径参数是
URL
中路径部分的变量。您可以选择指定此类参数的类型:
要调用该函数,您需要
GET
这些参数不能是可选的(除非没有它们声明另一个路由)。URL中未命名参数,但参数/值关联不含糊。想想位置参数。
查询参数
查询参数位于查询字符串中(在
?
之后)。在这种情况下,参数对于路由是未知的。您可以从请求对象获取它们。注意,这里没有验证,所以必须覆盖丢失或类型错误的情况。
要调用该函数,您需要
GET
查询参数可以按任意顺序提供,并且它们可以是可选的,具体取决于您在函数中所做的操作。想想关键字参数。
注意:要获得函数参数的验证,您可能需要查看webargs。
相关问题 更多 >
编程相关推荐