Python webapp 动态路径

标签 python google-app-engine

我目前正在试验一些 API,我想知道如何使用 URL 作为应用程序的参数。例如:

http://www.myapp.com/myapp/jack 打印出“你好 jack ”

http://www.myapp.com/myapp/john 打印出“你好约翰”

http://www.myapp.com/myapp/john%20jack打印出“你好约翰 jack ”

我想要一些关于在哪里可以找到此功能的指示。我觉得这很容易,但我就是无法理解。它取决于我使用的框架吗?我是 Python 的新手,所以我仍然在接受 Django 之类的东西。我在 Google App Engine 上使用 Python 和 GAE 的捆绑网络应用程序框架。

这是我目前正在使用的代码:

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()

最佳答案

魏,

您必须创建一个 url 模式,就像您在 myapp 收到请求时一样,您将解析剩余的 url 并显示消息。

例如

文件 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/ 之后的值并显示年份。

注意:自己做长 url,这样您就会知道它是如何工作的:)。

关于Python webapp 动态路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408318/

相关文章:

java - 谷歌应用程序引擎中的 Getkey() 返回 id

python - Google App Engine 和 Django 模板 : why do these two cases differ?

java - 将图像上传到 Google Cloud Storage (Java)

python - 除了在尝试了try block 和程序的其余部分之后总是抛出 block 之外?

python - 根据数据框 pandas 中行的条件删除特定行

Python 直方图箱

Java数据读取谷歌云平台

python - pandas 将系列值折叠成一个值

python - 如何关闭 MDIParentFrame 中的所有 MDIChildFrame?

html - 模板解析错误 - "operation not permitted"