python之oracle–续语言

每当thymeleaf 里面来个消息表达式: #{…} , 可以借这来落实国际化. 

接上篇

在自用这功用的时节, 遭受了一个题目, 遵照 JavaEE开发的颠覆者 Spring
Boot实战  下面编码的早晚, 出现了以下问题, 相信广大人口都遇过.

其三、连接oracle之部署文件

??home.welcome_zh_CN??

以多程序的可移植性,将 

这边推荐一首博客, 里面有解决办法. 玩转spring
boot——国际化

db = cx_Oracle.connect(‘bss_cpc/bss_cpc@192.168.128.49/orcl’)

本人为想拿我好代码记录下来.

修改为:

一. 索引预览

db = cx_Oracle(connStr),connStr值从布局文件被读取。

语言 1

读取配置文件能够运用内置模块

这里自己并不曾如约资料及所陈述之, 将properties文件建在 index.html
同级别目录下, 也没用称命名为: index.properties

import configparser     –>python3       import ConfigParser  
–>python2

事先是这样干的, 可是产生上述问题.

自的布置文件内容:

 

[oracle]
db_user = bss_cpc
db_pass = bss_cpc
db_host = 192.168.128.49
db_port =
db_space =
db_inst = orcl

二. properties文件内容

cf = configparser.ConfigParser()  

messages.properties:

#读取文件 (假使文件和python不在一个目录下,需要包含路径)

welcome=welcome here!  and   欢迎欢迎!

cf.read(“文件”)    

斯是于, 没有言语匹配上的时刻, 才会见展示

#以文件下section为oracle的情节读取并赋值给变量

messages_en_US.properties:

user = cf.get(“oracle”,”db_user”)    

welcome=welcome here!

_pass = cf.get(“oracle”,”db_pass”)

messages_zh_CN.properties:

host = cf.get(“oracle”,”db_host”)

welcome=欢迎欢迎!

port = cf.get(“oracle”,”db_port”)

 

inst = cf.get(“oracle”,”db_inst”)

三. 控制器

有些连可以无加端口,为了区别加了判断

package org.elvin.learn.springboot.controller;

import org.elvin.learn.springboot.pojo.Book;
import org.joda.time.DateTime;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

/**
 * author: Elvin
 * Date: 2017/12/13 9:29
 * Description:
 */
@Controller
@RequestMapping("thy")
public class ThyController {

    @GetMapping("index")
    public String index(Model model) { 
        model.addAttribute("color", "red");
        return "thy/index";
    }
}

if port == “”:

 

  connStr = user + ‘/’ +_pass + ‘@’ + host + ‘/’ +inst

四. 视图

else:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
    <title>Title</title>
    <!--@ { } 链接网址表达式, 会自动加入虚拟路径-->
    <link th:href="@{/bootstrap-3.3.7/css/bootstrap.css}" rel="stylesheet"/>
    <link th:href="@{/bootstrap-3.3.7/css/bootstrap-theme.css}" rel="stylesheet"/>
    <style th:inline="text">
        /*通过[ [ $ { }]]的方式访问model中的属性*/
        .bgcolor {
            background-color:[[${color}]]
        }
    </style>
</head>
<body>

<div class="panel panel-primary">
    <div class="panel-heading">
        <h3 class="panel-title">欢迎</h3>
        <a style="background-color: #0f0f0f" th:href="@{/thy/index?lang=en_US}">English(US)</a>
        <a style="background-color: #0f0f0f" th:href="@{/thy/index?lang=zh_CN}">简体中文</a>
    </div>
    <div class="panel-body">
        <!-- $ { }变量表达式, 可以访问model中的属性 -->
        hahaha
    </div>
</div>
</body>
</html>

  connStr = user + ‘/’ +_pass + ‘@’ + host + ‘:’ + ‘port’ + ‘/’ +inst

 

db = cx_Oracle(connStr)

五. 结果

到那么些读取配置文件连oracle搞定,剩下的都是概括的执行了。如有疑点或更好之看法可留言,我们可以共学学,共同提升,此外2019年python已超java成为海内外最为让欢迎的编程语言了,加油!!!

使火狐浏览器(可以调动突显语言). 

 

先是不好打开的早晚, 已经是可以正常展现的了. 不再报错

附configparser基本操作

语言 2

1.主旨的读取配置文件

这儿, 调整火狐默认彰显语言

-read(filename) 直接读取ini文件内容

-sections() 获得所有的section,并坐列表的款型重临

-options(section) 得到该section的所有option

-items(section) 得到该section的兼具键值对

-get(section,option) 得到section中option的值,返回为string类型

-getint(section,option)
得到section中option的价,再次来到吗int类型,还发生对应的getboolean()和getfloat()函数。

语言 3

2.主导的写入配置文件

刷新页面:

-add_section(section) 添加一个初的section

-set( section, option, value)
对section中的option进行安装,需要调用write将内容写副配置文件

语言 4

恐有人注意到, 我这边爆发些许个链接, 用来切换显示的. 遵照点的艺术,
是不可能这样切换的. 此时亟待开片改

 

六. 从定义呈现

进入配置文件

package org.elvin.learn.springboot.conf;

import java.util.Locale;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class LocaleConfig extends WebMvcConfigurerAdapter {
    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        // 默认语言
        //slr.setDefaultLocale(Locale.US);
        return slr;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        // 参数名
        lci.setParamName("lang");
        return lci;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }
}

此间的默认语言可安装, 也只是免若置. 倘使非装,
就会按照浏览器默认语言去判断显哪一个信息.

 

七. 结果

此地可以因 lang 去好采用展现这种语言了

语言 5

语言 6

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图