Flask Path or route parameters add (path)
-
path
-
Accept any path, including slashes:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def main():
return '''
Main<br>
<a href="/user/name">/user/name</a><br>
<a href="/user/other/dir">/user/other/dir</a><br>
<a href="/user/hi.html">/usre/hi.html</a><br>
'''
@app.route("/user/<path:fullpath>")
def api_info(fullpath):
return fullpath
flask --app path_any run
import pytest
import path_any
@pytest.fixture()
def web():
return path_any.app.test_client()
def test_app(web):
rv = web.get('/')
assert rv.status == '200 OK'
assert b'Main<br>' in rv.data
@pytest.mark.parametrize('path,expected', [
('/user/name', 'name'),
('/user/other/dir', 'other/dir'),
('/user/hi.html', 'hi.html'),
])
def test_user(web, path, expected):
rv = web.get(path)
assert rv.status == '200 OK'
assert rv.data.decode('utf-8') == expected
pytest