क्या फ्लास्क में वैकल्पिक यूआरएल पैरा के साथ यूआरएल को परिभाषित करने का कोई तरीका है? अनिवार्य रूप से, मैं क्या करना चाहते हैं कि नियमों वैकल्पिक रूप से निर्दिष्ट भाषाओं के लिए अनुमति को परिभाषित है:वैकल्पिक यूआरएल चर
/
/de -> matches/(but doesn't collide with /profile)
/profile
/de/profile
मुझे लगता है मैं यह करने के लिए एक तरीका खोज निकाला है, लेकिन यह या तो करने के लिए एक परिवर्तन करना होता कैसे WERKZEUG और फ्लास्क अनुरोध को संभालता है (या तो बंदर पैचिंग या फ्रेमवर्क स्रोत फोर्किंग)। हालांकि इस समस्या से निपटने के लिए यह एक जटिल जटिल तरीका है .. क्या ऐसा करने का कोई आसान तरीका है जिसे मैं देख रहा हूं?
संपादित करें:
ब्रायन के जवाब के आधार पर, यहाँ है कि मैं क्या के साथ आया है:
app.py:
from loc import l10n
def create_app(config):
app = Flask(__name__)
app.config.from_pyfile(config)
bp = l10n.Blueprint()
bp.add_url_rule('/', 'home', lambda lang_code: lang_code)
bp.add_url_rule('/profile', 'profile', lambda lang_code: 'profile: %s' %
lang_code)
bp.register_app(app)
return app
if __name__ == '__main__':
create_app('dev.cfg').run()
loc/l10ln.py
class Blueprint(Blueprint_):
def __init__(self):
Blueprint_.__init__(self, 'loc', __name__)
def register_app(self, app):
app.register_blueprint(self, url_defaults={'lang_code': 'en'})
app.register_blueprint(self, url_prefix='/<lang_code>')
self.app = app
(मुझे अभी तक परिवर्तनीय सूची से lang_code
खींचने के लिए नहीं मिला है, लेकिन जल्द ही ऐसा कर रहा है)
अब यह केवल गर्म imho है।
निश्चित रूप से इम्हो जाने का तरीका, ब्लूप्रिंट –