求教tornado如何传递参数?

2012-12-14 16:29:50 +08:00
 kenneth
比如:
http://www.aaa.com/tag/美女 如何才能等同 http://www.aaa.com/tag/?tagname=美女

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


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


class TagHandler(BaseHandler):

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

这样应该可以
kenneth
2012-12-14 16:44:45 +08:00
@ipconfiger tagname这个变量是对应我数据库的字段名?需要对应什么?
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
2012-12-14 17:00:46 +08:00
@kenneth 不对应啥,参照
@zeyexe 的例子,其实url里的正则的group会当成一个数组,用*的形式传进来,所以
def get(self, *args):也ok了
kenneth
2012-12-14 17:14:40 +08:00
@ipconfiger
@ccdjh
@zeyexe
多谢各位,我自己再实践理解一下。
MrMign
2013-03-13 15:51:37 +08:00
@kenneth /?tagname=美女,我可以通过get_argument得到 请问正则是如何写的呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX