Sen keyfi ifadeleri eşleşen özel konvertörlerindeki kanca: Armin ben bir uygulamaya nasıl kısaltılmış örneğini göstermek istedim kabul edilen bir cevapla beni dövdükleri rağmen
from random import randrange
from werkzeug.routing import Rule, Map, BaseConverter, ValidationError
class BooleanConverter(BaseConverter):
def __init__(self, url_map, randomify=False):
super(BooleanConverter, self).__init__(url_map)
self.randomify = randomify
self.regex = '(?:yes|no|maybe)'
def to_python(self, value):
if value == 'maybe':
if self.randomify:
return not randrange(2)
raise ValidationError()
return value == 'yes'
def to_url(self, value):
return value and 'yes' or 'no'
url_map = Map([
Rule('/vote/<bool:werkzeug_rocks>', endpoint='vote'),
Rule('/vote/<bool(randomify=True):foo>', endpoint='foo')
], converters={'bool': BooleanConverter})
+ 1 ne anlama geldiğini anlamıyorum! –
Fakat bu normal ifadelerin derlendiği veya anında değerlendirildiği anlamına mı geliyor? –
Bu regex doğrudan çalışma zamanında değerlendirilecek gibi görünüyor. Bu, regex desenlerinin son çiftinin bellekte derlendiği için daha küçük uygulamalar (veya regex'in birçok kez yeniden kullanan uygulamalar) için sorun teşkil etmemelidir. – bbenne10