我有一个Flask应用程序我正在为via python-sphinx构建文档。
我目前正在使用sphinxcontrib.autohttp.flask
我的问题是:我如何准备一个docstring,它正确地将不同的信息应用于同一路线的GET版本和POST版本。
例如一个小函数:
@app.route('/add_event', methods=['GET', 'POST'])
def add_event():
"""
..http:get:: /add_event
:return: Test
..http:post:: /add_event
:return: Test2
"""
if request.method == 'GET':
# get some things
person_id = request.args.get('id')
return render_template('create_event.html', race_event_form=test_form)
if request.method == 'POST':
# post some things
return redirect('/person_profile/id/{0}'.format(request.args.get('id')))
我目前在conf.py
中的扩展程序extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'sphinxcontrib.httpdomain',
'sphinxcontrib.autohttp.flask',
'sphinxcontrib.autohttp.flaskqref'
]
狮身人面像输出看起来像
是否可以为GET选择一件事,为POST设置另一件事?我真的想避免将每个函数分成两个单独的get / post函数。
此外,是否可以通过request.args
或request.form
通过GET请求中的person_id
变量传递autoflask输出所需的参数?
答案 0 :(得分:0)
尝试从Flask autodoc中删除重载的视图功能,并单独定义请求,同时保留自动生成的其余API。
这是一个例子......
在conf.py
中(插件的顺序 很重要):
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.httpdomain',
'sphinxcontrib.autohttp.flask',
]
在reStructuredText文件中:
API
===
.. autoflask:: path.to.your:app
:undoc-static:
:undoc-endpoints: your_view_method
.. http:get:: / your_view_endpoint
Some docstring you wrote.
.. http:post:: / your_view_endpoint
Another docstring you wrote.
关于第二个问题,您可以查看httpdomain
here的指示。