Bal*_*rni 2 python url http-post flask pythonanywhere
这是我使用Flask和Python的第一个应用程序.
我使用以下URL格式从Arduino发送POST请求到在Pythonanywhere服务器实例上运行的烧瓶应用程序.
有效的POST请求:3个URL参数 http://voyagers.pythonanywhere.com/senddata?node=1234&lat=18.5580&lng=73.8075
我需要通过以某种形式验证URL来阻止进一步处理的请求.我希望这可以保护我的应用程序免受未经身份验证的POST请求.
说这样的话:超过3个URL参数 http://voyagers.pythonanywhere.com/senddata?node=324&lat=18.5580&lng=73.8075&a=c&a=d
我怎样才能在Flask中实现这一目标?
还建议,如果有更好的方法可以用于保护未授权请求的应用程序.
flask如果您愿意从URL参数(即URL中的'?'符号后面的任何内容)切换到路径参数(即PathHTTP头中的任何内容或部件),您可以自动验证参数并自动抛出错误在第一个'/'之后的URL和'?'之前的URL).
您的示例可能如下所示:
@app.route('/post/<int:node_id>/<float:lat>/<float:lng>', methods=['POST'])
def process_post_request(node_id, lat, lng):
# do some work
return your_result
Run Code Online (Sandbox Code Playgroud)
然后你可以发送请求到URL,例如: http://example.com/post/1234/-11.45/21.34
你可以在这里找到更多相关信息:http://flask.pocoo.org/docs/0.12/quickstart/#variable-rules
为了保护访问权限,您可以在此处使用一些示例代码段:http://flask.pocoo.org/snippets/category/authentication/
我建议仅限制访问HTTPS并使用基本身份验证,如果你只是玩游戏.这是你可以用这里描述的简单装饰器做的事情:http://flask.pocoo.org/snippets/8/
您将在浏览器中收到一个提示,要求您输入用户名和密码,浏览器会在会话期间记住它.或者,您可以在Authorization标题中以base64编码形式设置用户名和密码:https://en.wikipedia.org/wiki/Basic_access_authentication
| 归档时间: |
|
| 查看次数: |
5151 次 |
| 最近记录: |