在express中设置动态路由参数的最佳实践

时间:2016-04-24 13:07:06

标签: node.js express routes

对于我的应用程序,我希望路由结构化,以便访问www.myapp.com/(username)将您带到该用户的页面。我设置它的方法是使用以下处理程序。

import time
import  Tkinter as tk
from Tkinter import StringVar
import threading
global root
root = tk.Tk()
x = tk.StringVar()
x.set('false')

def xval(*args):
    try:
        for i in range(0,9):
            global x
            print x.get()
            if x.get()== 'false' :
                print "x=false %d time"%i
                time.sleep(1)
            else:
                print "waiting"
            root.update()
    except:
        pass

def stop(event):
                resume_btn.configure(state="normal")
                global x
                x.set('true')
                print "execution stopped:%s"%x


def start(event):
                global x
                x.set('false')
                print "execution started:%s"%x
                xval()


root.title("GUI-Data Retrieval")
th = threading.Event()
t = threading.Thread(target=xval,args=(th,))
t.deamon=True
t.start()
x_btn = tk.Button(root, text="Stop", background="Snow", width=20, relief="raised")
x_btn.grid(row=0, column=4, sticky="W", padx=20, pady=5)
x_btn.bind('<Button-1>',stop)
resume_btn = tk.Button(root, text="Start", background="Snow", width=20, relief="raised")
resume_btn.configure(state="disabled")
resume_btn.grid(row=0, column=6, sticky="W", padx=20, pady=5)
resume_btn.bind('<Button-1>',start)
root.mainloop()

此设置有效,但这是正确的方法吗?我必须把这个处理程序放在我的其他处理程序之下,否则:username会尝试渲染传递给它的任何东西。

1 个答案:

答案 0 :(得分:1)

如果这样做,您必须控制用户名不是系统中的“保留路径”。例如,如果你有:

app.get('/about',...
app.get('/admin',...
app.get('/login',...

您确定用户名是“不是”,“管理员”,“登录”等。如@saadq所说,/user/:username更可取。但如果你不能,你必须有一个黑名单的用户名。