Sam*_*nga 6 python google-app-engine web-applications
我一直在尝试和尝试几个小时,必须有一个简单的方法来检索网址.我以为这是这样的:
#from data.models import Program
import basehandler
class ProgramViewHandler(basehandler.BaseHandler):
def get(self,slug):
# query = Program.all()
# query.filter('slug =', fslug)
self.render_template('../presentation/program.html',{})
Run Code Online (Sandbox Code Playgroud)
每当执行此代码时,我都会在stacktrace上出现此错误:
appengine\ext\webapp__init __.py",第511行,在call handler.get(*groups)中TypeError:get()只取2个参数(给定1个)
我做了一些调试,但这种调试超出了我的调试水平.当我从def get(self,slug)中移除slug时,一切都运行良好.
这是basehandler:
import os
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
class BaseHandler(webapp.RequestHandler):
def __init__(self,**kw):
webapp.RequestHandler.__init__(BaseHandler, **kw)
def render_template(self, template_file, data=None, **kw):
path = os.path.join(os.path.dirname(__file__), template_file)
self.response.out.write(template.render(path, data))
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,那就太好了!谢谢!这是我第一次使用stackoverflow发布问题,通常我只是阅读它来解决我遇到的问题.
您收到此错误ProgramViewHandler.get()是因为没有slug参数调用.
最有可能的是,您需要修复main.py文件中的URL映射.您的URL映射应该看起来像这样:
application = webapp.WSGIApplication([(r'/(.*)', ProgramViewHandler)])
Run Code Online (Sandbox Code Playgroud)
括号表示正则表达式分组.这些匹配的组作为参数传递给您的处理程序.所以在上面的例子中,一切都在URL中最初的"/"将被传递到下面ProgramViewHandler.get()的slug参数.
在此处了解有关webapp中URL映射的更多信息.
| 归档时间: |
|
| 查看次数: |
12707 次 |
| 最近记录: |