Categories
Python Answers

How to use regular expressions with Python Flask URL routing?

Spread the love

Sometimes, we want to use regular expressions with Python Flask URL routing.

In this article, we’ll look at how to use regular expressions with Python Flask URL routing.

How to use regular expressions with Python Flask URL routing?

To use regular expressions with Python Flask URL routing, we can create our own convert class.

For instance, we wrire

from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)

class RegexConverter(BaseConverter):
    def __init__(self, url_map, *items):
        super(RegexConverter, self).__init__(url_map)
        self.regex = items[0]


app.url_map.converters['regex'] = RegexConverter

@app.route('/<regex("[abcABC0-9]{4,6}"):uid>-<slug>/')
def example(uid, slug):
    return "uid: %s, slug: %s" % (uid, slug)


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

to create the RegexConverter class that sets self.regex to the first items entry.

Then we register the regex converter with

app.url_map.converters['regex'] = RegexConverter

Then if our URL starts with <regex and ends with > then RegexConverter will be used to match URLs.

Conclusion

To use regular expressions with Python Flask URL routing, we can create our own convert class.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *