我目前正在试验一些API,我想知道如何使用网址作为应用的参数。例如:
http://www.myapp.com/myapp/jack 打印出“hello jack”
或
http://www.myapp.com/myapp/john 打印出“你好约翰”
或http://www.myapp.com/myapp/john%20jack打印出“hello john jack”
我想了解一下我可以寻找这个功能的地方。我觉得这很容易,但我无法掌握它。它依赖于我正在使用的框架吗?我对Python很陌生,所以我仍然会接受Django和喜欢的人。我在Google App Engine上使用Python和GAE捆绑的webapp框架。
这是我目前正在使用的代码:
import cgi
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self,url=None):
self.response.out.write("hello " + str(url))
application = webapp.WSGIApplication([
(r'/(\w+)', MainPage)
],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
答案 0 :(得分:3)
韦,
您必须创建一个网址格式,就像您在myapp
处收到请求一样,您将解析剩余的网址并显示该消息。
例如
档案helloworld/app.yaml
application: helloworld
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
档案helloworld/helloworld.py
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self, url=None):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Happy New Year '+str(url))
#application = webapp.WSGIApplication(
# [('/', MainPage)],
# debug=True)
application = webapp.WSGIApplication([
(r'/myapp/(?P<url>\d{4})/$', MainPage)
],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
因此,这将处理您在/myapp/year/
处的所有请求,因此您必须在/myapp/
之后获取值并显示年份。
注意:请长篇大论自己,这样你就会明白它将如何运作:)。
答案 1 :(得分:0)
我只是好奇,真的需要?P<url>
标签吗?
我设法通过使用
来解决问题application = webapp.WSGIApplication([
(r'/myapp(/.*)*?', MainPage)
],
debug=True)
谢谢Lafada&amp;魏昊与我们分享。我也遇到了这个问题,我发现这个讨论真有帮助:)