Python 带有2个参数的调用崩溃,抱怨需要1个参数
为什么对Python 带有2个参数的调用崩溃,抱怨需要1个参数,python,google-app-engine,Python,Google App Engine,为什么对jinja_render()的以下调用会崩溃 def jinja_render(template, **params): t = jinja_env.get_template(template) return t.render(params) class Default(webapp2.RequestHandler): def get(self): jinja_render('welcome.html', {'username': 'test'}
jinja_render()
的以下调用会崩溃
def jinja_render(template, **params):
t = jinja_env.get_template(template)
return t.render(params)
class Default(webapp2.RequestHandler):
def get(self):
jinja_render('welcome.html', {'username': 'test'})
这是跟踪:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "C:\Users\Stefano\workspace\stefanomenci-test\test.py", line 19, in get
jinja_render('welcome.html', {'username': 'test'})
TypeError: jinja_render() takes exactly 1 argument (2 given)
这意味着,它只接受一个非命名参数,并且所有这些参数都应该是命名参数。要修复此错误,可以像这样调用函数
jinja_render('welcome.html', username = 'test')
当我们这样调用时,welcome.html
是一个非命名参数,其中istest
是一个命名参数,参数的名称是username
。还有另一种说法
jinja_render('welcome.html', **{'username': 'test'})
通过这种方式,我们可以将字典中的值作为命名参数解压到函数中。可能会重复感谢。以下是与函数参数相关的文档:
jinja_render('welcome.html', **{'username': 'test'})