我有一半的Flask路由需要一个变量,例如/<variable>/add或/<variable>/remove。如何创建指向这些位置的链接?

url_for()需要一个参数的函数路由,但我不能添加参数?


当前回答

它接受变量的关键字参数:

url_for('add', variable=foo)
url_for('remove', variable=foo)

烧瓶服务器将具有以下功能:

@app.route('/<variable>/add', methods=['GET', 'POST'])
def add(variable):

@app.route('/<variable>/remove', methods=['GET', 'POST'])
def remove(variable):

其他回答

它接受变量的关键字参数:

url_for('add', variable=foo)
url_for('remove', variable=foo)

烧瓶服务器将具有以下功能:

@app.route('/<variable>/add', methods=['GET', 'POST'])
def add(variable):

@app.route('/<variable>/remove', methods=['GET', 'POST'])
def remove(variable):

模板:

传递函数名和参数。

<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>

视图、功能

@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
    return id

参考Flask .url_for()的Flask API文档

下面是将js或css链接到模板的其他示例片段。

<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>

<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">

你需要添加函数意味着你想要呈现该函数的页面将被添加到url_for(函数名)中。 它将重定向到该函数,页面将相应地呈现。

如果这有帮助,你可以在声明flask应用程序时覆盖静态文件夹。

app = Flask(__name__,
            static_folder='/path/to/static',
            template_folder='/path/to/templates')