圣诞快乐。
我不确定这是否可行。如果我有一个视图索引,并且我在视图模板上有2个表单,我怎样才能将它们直接转换为不同的函数?
我的视图代码(作为一个简单示例)如下:
def deletex(input):
…
class AdminView(FlaskView):
@route('/')
def index(self):
return render_template(‘admin-home.html’)
def delete_x(self, methods=['POST']):
x = request.form['gid']
deletex(x)
flash(“All’s good")
return redirect(url_for(index))
相当简单的例子。 admin-home.html上的表单包含此内容......
<form action=“{{ url_for(‘AdminView:delete_x’) }}” method=“post”>
...
当我这样做时,它返回405错误。我可以通过GET将表单提交给delete_x并允许GET作为一种方法,但是我找不到一种方法来发布一个不是def post(self): …
的烧瓶级别的视图
我该怎么做?可能吗?我宁愿在一个视图中没有两种形式的逻辑。
答案 0 :(得分:0)
错误是因为我将methods=['POST']
置于错误的位置。我在函数声明而不是路径装饰器中进行了实验。
我的班级定义是:
@route('deletex', methods=['POST'])
def deletex(self):
pass
然后我的HTML表单是:
<form action="{{ url_for("AdminView:deletex") }}" method="post">