因为'code'是以下MethodView类的get方法的参数,所以当我调用url_for('c',code ='O7A')时,我期望结果网址为:/ C/O7Aflask url_for()将查询字符串当作查询字符串
而不是预期的价值,我看到的是:?/ C /码= O7A
from flask import Flask, url_for
from flask.views import MethodView
app = Flask(__name__)
class B(MethodView):
def get(self):
return 'ok'
def post(self):
print url_for('c', code='O7A')
return 'ok'
app.add_url_rule('/b',
view_func=B.as_view('b'),
methods=['GET', 'POST'])
class C(MethodView):
def get(self, code):
return 'ok'
def post(self):
return 'ok'
app.add_url_rule('/c/<code>',
view_func=C.as_view('c'),
methods=['GET'])
app.add_url_rule('/c/',
view_func=C.as_view('c'),
methods=['POST'])
print app.url_map
if __name__ == "__main__":
app.run()