gpt4 book ai didi

python - 如何创建指向另一个 html 页面的链接?

转载 作者:太空狗 更新时间:2023-10-29 17:53:54 26 4
gpt4 key购买 nike

我在一个页面上有一个表单,我想提交到另一个页面。我不知道如何创建指向第二页的链接。

项目布局:

Fileserver/
config.py
requirements.txt
run.py
setup.py
app/
__init__.py
static/
css/
img/
js/
templates/
formAction.html
formSubmit.html
index.html

__init__.py:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
ip = request.remote_addr
return render_template('index.html', user_ip=ip)

index.html:

<!DOCTYPE html>
<html lang="en">
<body>
<ul>
<li><a href="/formSubmit.html">Check Out This Form!</a>
</ul>
</body>
</html>

我可以在 localhost:5000/毫无问题地看到该页面。

我也试过:

<a href="{{ url_for('templates', 'formSubmit") }}"></a>

还有:

<a href="{{ url_for('formSubmit') }}"></a>

我错过了什么?

最佳答案

url_for 生成应用程序中定义的路由的 url。没有(或者应该没有)提供原始 html 文件,尤其是在模板文件夹之外。每个模板都应该由 Jinja 渲染。您要显示或发布表单的每个位置都应由应用程序中的路由处理和生成。

在这种情况下,您可能希望有一条路线既可以在 GET 上呈现表单,又可以在 POST 上处理表单提交。

__init__.py:

from flask import Flask, request, url_for, redirect, render_template

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/cool_form', methods=['GET', 'POST'])
def cool_form():
if request.method == 'POST':
# do stuff when the form is submitted

# redirect to end the POST handling
# the redirect can be to the same route or somewhere else
return redirect(url_for('index'))

# show the form, it wasn't submitted
return render_template('cool_form.html')

templates/index.html:

<!doctype html>
<html>
<body>
<p><a href="{{ url_for('cool_form') }}">Check out this cool form!</a></p>
</body>
</html>

templates/cool_form.html:

<!doctype html>
<html>
<body>
<form method="post">
<button type="submit">Do it!</button>
</form>
</html>

我不知道你的表单和路由实际上是做什么的,所以这只是一个例子。


如果需要链接静态文件,将它们放在static文件夹中,然后使用:

url_for('static', filename='a_picture.png')

关于python - 如何创建指向另一个 html 页面的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com