python – Flask – 我怎样才能在url中包含语言代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Flask – 我怎样才能在url中包含语言代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1365字,纯文字阅读大概需要2分钟。
内容图文
![python – Flask – 我怎样才能在url中包含语言代码](/upload/InfoBanner/zyjiaocheng/808/7c4fc77a25604ccba45376f6d72d07b4.jpg)
我开始使用Flask几周了,并且正在尝试将i18n和l10n应用到我的Flask应用程序中.
这是我真正想要实现的行为:
User enters
website.com
will be redirected towebsite.com/en/
orwebsite.com/fr/
depends on their Accept-Languages header or default language in their settings.
这是我目前的实施:
# main_blueprint.py
mainBlueprint = Blueprint('main', __name__)
@mainBlueprint.route('/')
def index(lang):
return "lang: %" % lang
# application.py
app.register_blueprint(mainBlueprint, url_defaults={'lang': 'en'})
app.register_blueprint(mainBlueprint, url_prefix='/<lang>')
这样,当我输入website.com或website.com/en/时,它只会回复website.com.除非我输入website.com/fr,否则会回复/ fr /.但是,我希望始终包含/ en /,即使它是默认选项.
我在Flask doc中尝试了指南URL Processors pattern,但是当我输入website.com时它回复了404错误.当我将language_code包含在url中时,它才能正常工作 – 这不是我想要的行为.
先感谢您!
解决方法:
看起来你只需要一个蓝图:
app.register_blueprint(mainBlueprint, url_defaults='/<lang>')
但是你应该决定默认蓝图路线的行为:
>它可以返回404:
app.register_blueprint(mainBlueprint, url_defaults='/<lang>')
>它可以重定向到/ en blueprint:
@mainBlueprint.before_request
def x(*args, **kwargs):
if not request.view_args.get('lang'):
return redirect('/en' + request.full_path)
app.register_blueprint(mainBlueprint, url_defaults={'lang': None})
app.register_blueprint(mainBlueprint, url_prefix='/<lang>')
内容总结
以上是互联网集市为您收集整理的python – Flask – 我怎样才能在url中包含语言代码全部内容,希望文章能够帮你解决python – Flask – 我怎样才能在url中包含语言代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。