我在我的主应用程序中有以下代码.我希望除了前两个之外的所有路径都被最后一个路由(/.*)捕获.但我得到404错误.我错过了什么?
import webapp2
from webapp2 import WSGIApplication, Route
# ---- main handler
class MainPage(webapp2.RequestHandler):
def get(self):
ret = jinja2render.DoRender(self)
return ret
routes = [
Route (r'/rpc', handler = 'rpc.RPCHandler'),
Route (r'/secured/somesecuredpage', handler = 'secured.securedPageHandler'),
Route (r'/.*', handler = MainPage),
]
app = WSGIApplication(routes, debug=True)
Run Code Online (Sandbox Code Playgroud)
我可以将最后一条路径从"/."更改为"/ <:. >"以捕获所有其他路径,但这也要求我在MainPage.get函数中包含一个命名参数.这是唯一的办法,还是我错过了什么?谢谢.
我的网站支持多种印度语言.用户可以动态更改语言.当用户输入一些字符串值时,我必须将字符串值拆分为单独的字符.所以,我正在寻找一种方法来编写一个适用于英语和一组精选印度语言的通用函数.我搜索过各个站点,但是,似乎没有通用的方法来处理这个要求.有特定于语言的实现(例如,泰米尔语的Open-Tamil包实现了get_letters)但我找不到一种常见的方法来分割或迭代unicode字符串中的字符,并考虑字形.
我尝试过的众多方法之一:
name = u'?????'
print name
for i in list(name):
print i
#expected output
?????
?
??
??
#actual output
?????
?
?
?
?
?
#Here is another an example using another Indian language
name = u'?????'
print name
for i in list(name):
print i
#expected output
?????
???
??
#actual output
?????
?
?
?
?
?
Run Code Online (Sandbox Code Playgroud) 我正在学习Go语言.这是我遇到的一个例子.有人可以解释一下这里发生了什么吗?
package main
import "time"
import "fmt"
func main() {
c1 := make(chan string)
c2 := make(chan string)
go func() {
time.Sleep(time.Second * 1)
c1 <- "one"
}()
go func() {
time.Sleep(time.Second * 2)
c2 <- "two"
}()
for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
fmt.Println("received", msg1)
case msg2 := <-c2:
fmt.Println("received", msg2)
default:
fmt.Println("Default")
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Default
Default
Program Exited
Run Code Online (Sandbox Code Playgroud)
如果我注释掉默认部分
//default:
// fmt.Println("Default")
Run Code Online (Sandbox Code Playgroud)
输出变为:
received one
received two …Run Code Online (Sandbox Code Playgroud)