python之flask框架中南的url_for的用法总结

url_for函数不仅可以在flask-python中使用,也可以在基于jinja2的html中直接使用!

#这里的web.book_search是蓝图web下面的视图函数book_search

//基于jinja2的html代码
<form class="form-inline" action="{{ url_for('web.book_search') }}" method="get"></form>


#flask导入js文件
<script src="{{ url_for('static', filename='3rd/jquery-3.2.1.min.js') }}"></script>

 

#flask代码

from flask import Blueprint

# 创建蓝图对象,templates模板渲染路径为当前__name__的相对路径
web = Blueprint("web", __name__,template_folder="templates")

@web.route('/book/search')
def book_search():
    form = BookForms(request.args)
    val_bool = form.validate()

    data = {}
    if val_bool:
        # 从校验器form获得keyword更好(尤其校验器中设置了默认值default的情况下),strip()去掉前后空格
        keyword = form.q.data.strip()
        page = form.page.data
        data = SearchBook(keyword, page).get_search_data()
        # return json.dumps(data, ensure_ascii=False)
        # return jsonify(data)
        # return render_template("search_result.html",data=data)
    else:
        # return jsonify(form.errors)
        flash("搜索关键字不符合,重新搜索")
    return render_template("search_result.html",books = data)

python之flask框架中南的url_for的用法总结

python之flask框架中南的url_for的用法总结