我正在使用werkzeug在python中实现一个简单的API。我创建了一个简单的应用程序'localhost'。我想在GET请求后执行一个函数。我对URL路由感到困惑。我已经完成了this教程并实现了路由,但仍然无法弄清楚如何将请求发送到另一个文件。这是我的代码:
url_map = Map([
Rule('/spell', endpoint='spell_checker.py'),
Rule('/he', endpoint='hello/test')
])
@Request.application
def application(request):
urls = url_map.bind_to_environ(environ)
try:
endpoint, args = urls.match()
print(endpoint + " " + args)
#urls.dispatch('test')
except httplib.HTTPException, e:
return e(environ, start_response)
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Rul1e points to %r with arguments %r' % (endpoint, args)]
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('127.0.0.1', 4000, application)
我在另一个名为hello.py的文件中有另一个在同一目录
中def index():
print 'This is the test'
我想从URL调用索引函数,如localhost:4000 / hello,它将调用文件hello.py的索引函数 请帮助我。
答案 0 :(得分:0)
如果要首先使用外部库中的函数,则必须导入外部库
import foo #your library
然后,为了调用函数“foo_function”,你必须使用:
来调用这个函数foo.foo_function(args) #where args are declared in the hello.py file
答案 1 :(得分:0)
端点通常是一个字符串,可以唯一使用 识别网址
因此它不会将函数绑定到url,您必须自己完成。 在此行之后
endpoint, args = urls.match()
在您的情况下,您可以使用某种控制语句来运行特定的函数:
if endpoint == "hello/test":
hello.index(request, **args)
假设您在将浏览器指向hello
时导入了\he
模块,程序将调用hello.index
函数。
http://werkzeug.pocoo.org/docs/0.11/tutorial/#step-4-the-routing