- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Tornado 创建网络服务。我学习了很多处理 URL 的方法,但我找不到处理此 URL 的方法:
Main-Dns:xxxx(port)/{System}(this is static)/{word}?q={word}
我的代码:
import tornado.ioloop
import tornado.web
import psycopg2
import json
import collections
import datetime
import decimal
application = tornado.web.Application([
(r"/system/(\w+)[?][q]=[\w+]",MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
仅当我删除“?”时,我尝试了许多正则表达式它有效
例如,对于此 URL,获取 uri:
uri:/system/4?q=
handler:r"/system/(\d)[?]q=",MainHandler
uri:/system/word_word?q=
handler:r"/system/(\w+)[?][q]=",MainHandler
该参数是可选的,我只放了“()”来测试发送参数。
我使用了Python正则表达式测试器网络,发现我可以工作,但在Tornado中我认为这不是一回事。
提前致谢。
编辑:更多示例
Handle:/system/(\w+)[?]q=(\w+)
URL examples : /system/(any_word)?q=(any_word) like
/system/word_word?q=word
/system/wo5d_w5rd?q=w5ord
编辑:这是控制台输出:
WARNING:tornado.access:404 GET/system/test?q=test
我可以不用“?”但我需要用“?”来做到这一点。
编辑:使用 get_argument() 方法,可能是这样的:
Uri:/system/word?{last_name='Jackson_Smith'}
to get this parameters: "word" , "last_name" , "'Jackson_Smith'"
最佳答案
您不想 try catch 正则表达式中的“?q=..”。您可以使用 get_argument
方法在 RequestHandler
本身中捕获该信息。
这是一个小例子,我认为它反射(reflect)了您想要做的事情:
#!/usr/bin/python
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self, word=None):
self.write("word is %s\n" % word)
self.write("uri is %s\n" % self.request.uri)
self.write("q is %s\n" % self.get_argument("q"))
application = tornado.web.Application([
(r"/system/(.+)",MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
这是示例输出:
dan@dan:~$ curl localhost:8888/system/4?q=44d
word is 4
uri is /system/4?q=44d
q is 44d
dan@dan:~$ curl localhost:8888/system/word_word?q=word
word is word_word
uri is /system/word_word?q=word
q is word
dan@dan:~$ curl localhost:8888/system/wo5d_w5rd?q=w5ord
word is wo5d_w5rd
uri is /system/wo5d_w5rd?q=w5ord
q is w5ord
关于python - Tornado 网址不匹配? ("Interrogation") 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395170/
我正在使用 Tornado 创建网络服务。我学习了很多处理 URL 的方法,但我找不到处理此 URL 的方法: Main-Dns:xxxx(port)/{System}(this is static)
这个问题已经有答案了: Trouble with UTF-8 characters; what I see is not what I stored (5 个回答) UTF-8 all the way
我有一个网址,如下所示: http://google.com/foo/querty?act=potato http://google.com/foo/querty/?act=potato http:/
Note. This is not interrogate the url that you get from window.location 我正在使用返回详细信息的chrome.webReques
我是一名优秀的程序员,十分优秀!