To solve application task in #230 I use my own defined convertor:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import starlette.convertors as conv
class UnderscoreConvertor(conv.Convertor):
regex = ".*"
def convert(self, value: str) -> str:
return "_" + value
def to_string(self, value: str) -> str:
return value[1:]
conv.CONVERTOR_TYPES['underscore'] = UnderscoreConvertor()
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
import uvicorn
app = Starlette()
@app.route("/test/{username:underscore}")
def http_test(request):
username = request.path_params['username']
return PlainTextResponse(username + "\n")
if __name__ == '__main__':
uvicorn.run(app, host='0.0.0.0', port=8080)
So feature request is allowing user-defined converters in more acceptable way. Something like:
starlette.convertors.add("underscore", UnderscoreConverter())
To solve application task in #230 I use my own defined convertor:
So feature request is allowing user-defined converters in more acceptable way. Something like:
starlette.convertors.add("underscore", UnderscoreConverter())