V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tornado Documentation
http://www.v2ex.com/tornado/
Tornado on GitHub
https://github.com/facebook/tornado/
Tornado Gists
http://tornadogists.org/
kenneth
V2EX  ›  Tornado

求教tornado如何传递参数?

  •  
  •   kenneth · 2012-12-14 16:29:50 +08:00 · 7750 次点击
    这是一个创建于 4394 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如:
    http://www.aaa.com/tag/美女 如何才能等同 http://www.aaa.com/tag/?tagname=美女

    因为我看链接正则可以写成
    http://www.aaa.com/article/10000 等同于 http://www.aaa.com/article/?id=10000


    不同在与一个直接/参数
    一个却要/?参数名=参数
    问下两种传递方式有什么不同。
    9 条回复    1970-01-01 08:00:00 +08:00
    ccdjh
        1
    ccdjh  
       2012-12-14 16:34:28 +08:00
    1是直接写进参数里面
    2是直接获取。
    kenneth
        2
    kenneth  
    OP
       2012-12-14 16:35:48 +08:00
    @ccdjh 能否解释下,比如/?tagname=美女,我可以通过get_argument得到,但是/美女。我如何得到这个参数?
    ipconfiger
        3
    ipconfiger  
       2012-12-14 16:42:16 +08:00
    class MeiNvHandler(tornado.web.RequestHandler):
    def get(self,tagname):
    #do sth
    zeyexe
        4
    zeyexe  
       2012-12-14 16:43:00 +08:00   ❤️ 1
    (r'/tag/(.*)', TagHandler),


    class TagHandler(BaseHandler):

    def get(self, *args):
    self.write("Hello," + args[0])

    这样应该可以
    kenneth
        5
    kenneth  
    OP
       2012-12-14 16:44:45 +08:00
    @ipconfiger tagname这个变量是对应我数据库的字段名?需要对应什么?
    ccdjh
        6
    ccdjh  
       2012-12-14 16:59:42 +08:00
    #!/usr/bin/env python
    # coding=utf-8

    import os
    import tornado.wsgi
    import tornado.web
    import sae


    class ArticleHandler(tornado.web.RequestHandler):
    def get(self):
    c = self.get_argument('id')
    self.write(c)

    class TagHandler(tornado.web.RequestHandler):
    def get(self,tag):
    self.write(tag)

    app = tornado.wsgi.WSGIApplication([
    (r"/article/", ArticleHandler),
    (r"/tag/([0-9a-zA-Z\-\_]+)", TagHandler),

    ])

    application = sae.create_wsgi_app(app)
    ipconfiger
        7
    ipconfiger  
       2012-12-14 17:00:46 +08:00
    @kenneth 不对应啥,参照
    @zeyexe 的例子,其实url里的正则的group会当成一个数组,用*的形式传进来,所以
    def get(self, *args):也ok了
    kenneth
        8
    kenneth  
    OP
       2012-12-14 17:14:40 +08:00
    @ipconfiger
    @ccdjh
    @zeyexe
    多谢各位,我自己再实践理解一下。
    MrMign
        9
    MrMign  
       2013-03-13 15:51:37 +08:00
    @kenneth /?tagname=美女,我可以通过get_argument得到 请问正则是如何写的呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:10 · PVG 02:10 · LAX 10:10 · JFK 13:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.