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)