当前位置: 首页 > 知识库问答 >
问题:

如何使用Flask/Python 3[duplicate]处理URL中缺少的参数

曹鸿风
2023-03-14

目前,我的网站上有两个下拉框,其值在提交表单时转换为两个URL参数“myState”和“myShelter”。例如:

https://www.atweather.org/forecast?myState=CT

我现在添加了第三个框,将有第三个相应的参数称为“myTrail”。我的问题是这样的:我如何使它,如果有人直接提交一个URL只有两个参数,浏览器不会错误的请求?我想让用户看到页面,就好像“我的国家”和“我的避难所”被选中了,但是“我的踪迹”没有被选中。

我试着到处找,但我不认为这些情况与我所问的完全相同。我在Python3下使用Flask,目前处理此路由如下:

@app.route('/forecast', methods = ['GET'])
def forecast(loc_state = None, loc_id = None):

    """
    Handles rendering of page after a location has been selected
    """

    loc_state = request.args['myState']
    loc_id = int(request.args['myShelter'])

    ...and a bunch of other logic for rendering the page...

提前感谢任何见解!

共有1个答案

靳彦
2023-03-14

request.args.get()方法允许获取参数(如果存在)。

# return None if the argument doesn't exist
trail = request.args.get('myTrail')

# return 'x' if the argument doesn't exist
trail = request.args.get('myTrail', 'x')

在此之后,只需处理该值以返回所需的方式。

 类似资料:
  • 我有一个Kotlin数据类, 有没有办法让Jackson不为它传递任何值,这样类定义中指定的默认值就可以使用了? --编辑-- 我确实向映射器注册了一个KotlinModule()。使用版本2.7.8或涉及的所有jackson包。

  • 问题内容: 当我运行它时,它抱怨: 但是我不能使用,因为它会抱怨: 有人知道如何处理吗? 问题答案: 您可以使用urllib.parse.quote()对URL的路径部分进行编码。

  • 问题内容: 我想在我的网站上使用一些搜索功能。在输出页面中,我将所有结果显示在单个页面中。但是,我想将其分发到许多页面(即每页100个搜索)。为此,我在“ urlfor”中传递了许多默认搜索,但是它不起作用。我知道我犯了一个小错误,但没有抓住。 这是我的代码如下: 在这里,我希望在类似“ http://127.0.0.1:5000/my_search/assets?results1=0-100”

  • 我正在学习python。我创建了一个包含2个方法的类可视化工具。现在我想在第二个方法中调用第一个方法。我读到我必须使用self: 这很有效。现在我添加了其他参数: 我从我的调用它: 现在我得到一个错误: 我检查了,参数3在那里,参数序列是相同的。我认为它与自我冲突。 我怎样才能解决这个问题?我的类中是否需要init方法? 编辑:在我的主页上:

  • 问题内容: 当用户访问在我的flask应用程序上运行的URL时,我希望Web服务能够处理问号后指定的参数: 问题答案: 使用得到解析查询字符串的内容: