私はFlaskで遊び始めたばかりなので、明らかなことを見落としている可能性が非常に高いですが、他の人が同じ答えを探すのに良い質問になるかもしれません:)
多言語 URL をリッスンする Flask アプリを作成したいと考えています。つまり、1 つのエンドポイントが /naujiena/111 (リトニア語など) と同じように /news/111 をリッスンするようにする必要があります。
したがって、明らかな解決策の 1 つは、次のようにビュー関数へのルートをいくつか与えることです。
@app.route('/news/<id>')
@app.route('/naujiena/<id>')
def news_view(id): pass
これは機能するはずですが、後で新しい言語を追加したり、リンクを更新したりするのは(親密な場所で)明らかに苦痛です。
私が考えているもう1つの解決策は、実際のビュー関数を定義する1つのファイルと、リクエストを取得してから他のファイルから実際のビュー関数をクエリする「言語ビュー」ファイルをいくつか作成できることです。お気に入り
ニュース.py
def news_view(id): pass
news_ja.py
from news import news_view
@app.route('/news/<id>')
def news_view_en(id):
return news_view(id)
news_lt.py
from news import news_view
@app.route('/naujiena/<id>')
def news_view_lt(id):
return news_view(id)
これは悪いことではありません。しかし、私が見逃しているものがあるはずです:) それで、みんな、それは何ですか? :) どんな提案も大歓迎です。
ありがとう!