【发布时间】:2017-01-28 21:19:46
【问题描述】:
我正在为个人项目构建一个 web 应用程序,我希望能够将 JSON 提供给 api 调用并将 HTML 提供给网站。
我的代码与此非常相似:
class TestAPI(Resource):
def get(self):
return {'hello': 'world'}
def post(self):
data = request.form["data"]
result = do_something(data)
return {'result': result}
@mod.route("/")
def test():
return render_template("test.html")
@mod.route("/do_something", methods=['GET','POST'])
def analyzer():
form = TestForm()
if request.method == 'POST':
data = request.form.get("data")
result = do_something(data)
return render_template("result.html", result=result)
return render_template("do_something.html", form=form)
我希望这能让用户导航到页面并以表单形式提交数据,对数据进行操作,然后在另一个 html 页面中返回(使用 jinja 模板)。我希望它也能让用户卷曲端点来做同样的事情,除了只是获取 JSON 值。
似乎发生的事情取决于我定义事物的顺序:
from app.views.test import test
api.add_resource(TestAPI, '/do_something')
当它像这样设置时,我从所有东西(在浏览器中,甚至从 curl 中)获取 HTML。如果我反转它,我到处都会得到 JSON。有没有办法让我两者兼得? (浏览器中的 HTML,否则为 JSON)
【问题讨论】:
标签: python flask flask-restful