如何调试Flask中的URL路由?
我正在用Visual Studio 2013的PythonTools开发一个Flask网站,这个工具自带调试器,可以让我逐步查看初始设置的代码,直到app.run()
这行。
不过,我想调试的代码是路由代码,像这样:
@app.route('/')
def url_index():
return render_template('index.html')
我知道这个函数在运行,因为服务器会返回index.html,但如果我在最后一行设置一个断点,它永远不会被触发。
有没有办法调试这些路由函数呢?Flask说它自带调试器,但我该怎么用呢?这个调试器能和Visual Studio兼容吗?
4 个回答
1
2
很遗憾,目前版本的PTVS不支持Flask项目。
不过好消息是:已经发布的PTVS 2.1 alpha版本是支持的:http://pytools.codeplex.com/wikipage?title=Flask
4
六个月过去了,虽然现在还不能自动调试Flask中的URL路由,但你可以手动把调试工具连接到Flask进程。不过,如果你重启服务器,或者自动重载检测到你的.py文件有变化并重启的话,你需要重新连接调试工具。
你只需要这样操作:
工具 -> 附加到进程
然后选择那个没有变灰的Python.exe(这就是Visual Studio已经在调试的Flask初始代码)。接着做一些会触发断点的操作(比如刷新页面),这样就应该能成功了。
4
对于Flask的调试工具,你可以把 app.debug
设置为 True
:
app.debug = True
或者
app.run(debug=True)
然后:
@app.route('/')
def index():
raise
return render_template('index.html')
这样你就可以在浏览器中使用Flask的调试工具来调试这个函数了。