我目前正在试验一些 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/