栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

有或没有蓝图的两种语言烧瓶站点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

有或没有蓝图的两种语言烧瓶站点

from flask import Flask, Blueprint, g, redirect, request,     session, abort, render_template, url_for, Response, make_responseimport datetimeapp = Flask(__name__, template_folder='../templates')main = Blueprint('main', __name__, url_prefix='/<lang_pre>')app.url_map.strict_slashes = Falseapp.secret_key='p9uyg7yuwriwjigjergkrgrrrr'app.config['SUPPORTED_LANGUAGES'] = {'ka': 'Georgian', 'en': 'English'}translation_list = [{ 'name': 'anytrans',        'ka': 'ქარ',        'en': 'Eng'},         { 'name': 'any',        'ka': 'რამე',        'en': 'Any'},         ]@main.before_requestdef ensure_lang_support():    lang_pre = g.get('lang_pre', None)    session['lang_pre'] = lang_pre    if lang_pre and lang_pre not in app.config['SUPPORTED_LANGUAGES'].keys():        ''' fix for unsupported lang inserted '''        session['lang_pre'] = '/ka/'        g.lang_pre = 'ka'        return abort(404)@main.context_processordef inject_language():    return dict(sess_lang=g.lang_pre)@main.url_defaultsdef add_language_pre(endpoint, values):    if 'lang_pre' in values or not g.get('lang_pre', None):        return    if app.url_map.is_endpoint_expecting(endpoint, 'lang_pre'):        values['lang_pre'] = g.lang_pre@main.url_value_preprocessordef pull_lang_pre(endpoint, values):    g.lang_pre = values.pop('lang_pre')@main.route('/change/<new_lang_pre>', methods=['POST','GET'])def change(new_lang_pre):    response = make_response(session["lang_pre"])    session['lang_pre'] = new_lang_pre    response.set_cookie('lang_pre', new_lang_pre)    return response@main.after_requestdef set_lang_cookie(response):    response.set_cookie('lang_pre', g.lang_pre)    return response@main.context_processordef inject_translations():    return dict(translations=get_translation())def get_translation():    lang = g.lang_pre    translations = {}    for trans in translation_list:        translations.update({trans['name']:trans[lang]})    return translations@main.route('/')def index():    return render_template('index.html')@main.route('/home/hale/')def home():    url = url_for('main.index')    return render_template('index.html')@app.route('/')def redir():    lang = request.cookies.get('lang_pre',None)    if lang:        return redirect('/'+ lang + '/')    else:        return redirect('/ka/')    if __name__ == '__main__':        app.run(){% extends 'html/base.html'  %}{% block body%}    <script type="text/javascript">        function change_lang(id){ $.get('/{{sess_lang}}/change/'+id, function(data){     var pathname = window.location.pathname.split( '/' );     var newPathname = "";     for (i = 2; i < pathname.length; i++) {         newPathname += "/";         newPathname += pathname[i];     }     window.location.href = '/'+ id + newPathname });        }    </script>{% if sess_lang =='ka' %}    <p>{{sess_lang}}</p>    <p onclick='change_lang(id)' id="en" >change</p>{% else %}    <p>{{sess_lang}}</p>     <p onclick='change_lang(id)' id="ka" >change</p>{% endif %}<div >    <a href="/">Home</a>    <a href="/{{sess_lang}}/home/hale/">Home</a></div>{% endblock %}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号