html,修改<form action=的参数就会报错

在编辑一个html文件时,修改一下内容:


```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="https://localhost/5000" method="post">  <!--这里一改url_for 就报错 ?-->
        <p>姓名:<input type="text" name="姓名"></p>
        <p>年龄:<input type="text" name="年龄"></p>
        <p>性别:<input type="text" name="性别"></p>
        <p>地址:<input type="text" name="地址"></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

app.py中的代码为:

```python
#表单提交
@app.route('/test/register')
def test1():
    return render_template('test/register.html')


#接受表单路由 指定methods
@app.route('/result',methods=['POST','GET'])
def test2():
    if request.method=='POST':
        result=request.form
        return render_template('test/result.html',result=result)

if __name__ == '__main__':
    app.run(debug=True)

把action属性后面的url改成:url_for(’result‘) 就会报错 ,报错内容为:

werkzeug.routing.exceptions.BuildError: Could not build url for endpoint '/result'. Did you mean 'test1' instead?

url_for函数正确的用法是:url_for('视图函数名字') ,所以html文件应该改成:

<form action="{{ url_for('test2') }}" method="post">

有帮助的话,请点采纳该答案~

【以下回答由 GPT 生成】

问题分析:根据给出的代码和问题描述,可以大致推断出可能的问题是在修改

标签中的action参数时,导致了报错。具体的解决方案如下:

解决方案: 1. 首先,我们需要确认报错的具体信息。可以在浏览器中打开开发者工具,查看控制台(console)中的错误信息,或者查看服务器日志中的错误信息。根据错误信息可以更准确地定位问题。

  1. 根据问题描述,报错是在尝试使用url_for函数生成URL时发生的。我们需要确保url_for函数的使用没有问题。url_for函数是Flask提供的用于生成URL的函数,可以根据视图函数的名称和参数生成对应的URL。在代码中没有提供url_for函数的实际调用部分,所以这里假设在其他地方的代码中有类似以下的调用:

python url = url_for('test1') # 获取test1视图函数的URL

这里需要确保调用url_for函数时传递的参数正确,即确保test1是对应的视图函数名称。

  1. 在模板文件中使用url_for函数时,需要确保模板中可以正确引用到url_for函数。需要在app.py文件中导入url_for函数,可以像下面这样导入:

python from flask import Flask, render_template, url_for

确保url_for函数的引用是正确的,否则可能会引发报错。

  1. 如果确认以上两个部分没有问题,那么可以继续下一步。

  2. 确认在修改<form>标签中的action参数时是否正确。确保新的URL是正确的,并且可以访问到对应的视图函数。

  3. 如果以上步骤确认没有问题,可以尝试重新启动应用程序,确保修改保存的文件已经生效。

  4. 如果问题仍然存在,可以考虑检查其他可能的原因,比如服务器配置、端口访问限制等。

综上所述,根据提供的信息和代码,我无法确定具体的解决方案。请先尝试以上提供的可能的解决方案,如果问题仍然存在,建议提供更多代码和错误信息,以便更准确地定位问题并给出具体的解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^