Python 如何使用Flask从URL获取命名参数?
当用户访问在我的flask应用程序上运行的此URL时,我希望web服务能够处理问号后面指定的参数:Python 如何使用Flask从URL获取命名参数?,python,web-services,flask,url-parameters,Python,Web Services,Flask,Url Parameters,当用户访问在我的flask应用程序上运行的此URL时,我希望web服务能够处理问号后面指定的参数: http://10.1.1.1:5000/login?username=alex&password=pw1 #I just want to be able to manipulate the parameters @app.route('/login', methods=['GET', 'POST']) def login(): username = request.form['
http://10.1.1.1:5000/login?username=alex&password=pw1
#I just want to be able to manipulate the parameters
@app.route('/login', methods=['GET', 'POST'])
def login():
username = request.form['username']
print(username)
password = request.form['password']
print(password)
用于获取查询字符串的已解析内容:
from flask import request
@app.route(...)
def login():
username = request.args.get('username')
password = request.args.get('password')
用于获取查询字符串的已解析内容:
from flask import request
@app.route(...)
def login():
username = request.args.get('username')
password = request.args.get('password')
URL参数在中可用,它是一个具有
get
方法的,具有默认值(default
)和类型(type
)的可选参数-可调用该参数将输入值转换为所需格式。(有关详细信息,请参阅。)
上面代码的示例:
/my-route?page=34 -> page: 34 filter: '*'
/my-route -> page: 1 filter: '*'
/my-route?page=10&filter=test -> page: 10 filter: 'test'
/my-route?page=10&filter=10 -> page: 10 filter: '10'
/my-route?page=*&filter=* -> page: 1 filter: '*'
URL参数在中可用,它是一个具有
get
方法的,具有默认值(default
)和类型(type
)的可选参数-可调用该参数将输入值转换为所需格式。(有关详细信息,请参阅。)
上面代码的示例:
/my-route?page=34 -> page: 34 filter: '*'
/my-route -> page: 1 filter: '*'
/my-route?page=10&filter=test -> page: 10 filter: 'test'
/my-route?page=10&filter=10 -> page: 10 filter: '10'
/my-route?page=*&filter=* -> page: 1 filter: '*'
还可以在视图定义的URL上使用括号,该输入将进入视图函数参数
@app.route('/<name>')
def my_view_func(name):
return name
@app.route(“/”)
定义我的视图功能(名称):
返回名称
您还可以在视图定义的URL上使用括号,该输入将进入视图函数参数中
@app.route('/<name>')
def my_view_func(name):
return name
@app.route(“/”)
定义我的视图功能(名称):
返回名称
如果在URL中传递了一个参数,则可以按如下操作
from flask import request
#url
http://10.1.1.1:5000/login/alex
from flask import request
@app.route('/login/<username>', methods=['GET'])
def login(username):
print(username)
如果POST请求中的参数作为表单参数传递,并且不显示在URL中,那么您尝试执行的操作将起作用。如果您实际上正在开发登录API,建议您使用POST请求,而不是获取数据并向用户公开数据
在提出post请求的情况下,其工作如下:
#url
http://10.1.1.1:5000/login
HTML代码段:
<form action="http://10.1.1.1:5000/login" method="POST">
Username : <input type="text" name="username"><br>
Password : <input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
如果在URL中传递了一个参数,则可以按如下方式执行
from flask import request
#url
http://10.1.1.1:5000/login/alex
from flask import request
@app.route('/login/<username>', methods=['GET'])
def login(username):
print(username)
如果POST请求中的参数作为表单参数传递,并且不显示在URL中,那么您尝试执行的操作将起作用。如果您实际上正在开发登录API,建议您使用POST请求,而不是获取数据并向用户公开数据
在提出post请求的情况下,其工作如下:
#url
http://10.1.1.1:5000/login
HTML代码段:
<form action="http://10.1.1.1:5000/login" method="POST">
Username : <input type="text" name="username"><br>
Password : <input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
网址:
代码:
@app.route('/user/',methods=['GET','POST'])
def用户视图(名称):
印刷品(名称)
(编辑:删除格式字符串中的空格)url:
代码:
@app.route('/user/',methods=['GET','POST'])
def用户视图(名称):
印刷品(名称)
(编辑:删除格式字符串中的空格)非常简单。让我把这个过程分为两个简单的步骤
来自flask导入请求
@app.route('/my route',methods=['POST'])
#您应该始终解析用户名和密码
#POST方法中的密码无法获取
定义我的路径()
用户名=request.form.get(“用户名”)
打印(用户名)
密码=request.form.get(“密码”)
打印(密码)
#现在,根据需要操作用户名和密码变量
#提示:如果需要,请定义另一个方法,而不是方法=['GET'、'POST']
#也使用GET请求呈现相同的模板
这真的很简单。让我把这个过程分为两个简单的步骤
来自flask导入请求
@app.route('/my route',methods=['POST'])
#您应该始终解析用户名和密码
#POST方法中的密码无法获取
定义我的路径()
用户名=request.form.get(“用户名”)
打印(用户名)
密码=request.form.get(“密码”)
打印(密码)
#现在,根据需要操作用户名和密码变量
#提示:如果需要,请定义另一个方法,而不是方法=['GET'、'POST']
#也使用GET请求呈现相同的模板
使用request.args.get(param)
,例如:
http://10.1.1.1:5000/login?username=alex&password=pw1
使用request.args.get(param)
,例如:
http://10.1.1.1:5000/login?username=alex&password=pw1
这应该行得通
@app.route('/login$username=$password=',methods=['GET','POST']))
def登录(用户名、密码):
#你可以加东西
返回f“用户名:{Username}\n密码:{password}”
这应该行得通
@app.route('/login$username=$password=',methods=['GET','POST']))
def登录(用户名、密码):
#你可以加东西
返回f“用户名:{Username}\n密码:{password}”
只是一个安全提示:不要在GET请求中包含密码。另一个关于安全性的小提示:不要向HTTP端点发送密码(仅限HTTPS)只是一个关于安全性的小提示:不要在GET请求中包含密码。另一个关于安全性的小提示:不要向HTTP端点发送密码(只发送HTTPS)。我认为这应该是答案,因为这是de flask文档的目的。这应该是公认的答案!这是一个路径参数,而不是查询。不知何故,这对我不起作用……我从python中得到了错误。我认为这应该是答案,因为这是de flask文档的目的。这应该是公认的答案!这是一个path参数,而不是QUERY这对我不起作用……我从python中得到了错误。filter
是一个保留字,不应使用;)@IvanCamilitoRamirezVerdes您能为这个过滤器关键字提供一个资源吗?@Genius我认为filter
在python中不是一个关键字,而是一个内置函数的名称。有关详细信息,请参阅。filter
是保留字,不应使用;)@IvanCamilitoRamirezVerdes您能为这个过滤器关键字提供一个资源吗?@Genius我认为filter
在python中不是一个关键字,而是一个内置函数的名称。有关详细信息,请参阅。这与在app.route('/username=&password=')中使用参数相比如何。