标题1、url_for()的使用
route()去设置访问函数的路由,那能否通过函数去得到访问的路径呢,答案是可以,那么就是通过url_for()去解析。比如下面有bookList()和bookList1(id)两个函数,在print_hi()中可以输出前面两个函数的route
from flask import Flask, url_for,jsonify
@app.route('/')
def print_hi():
'''
通过使用url_for可以通过传递的参数1函数名称得到访问该函数的route,如果函数还有其他参数,那么也需要拼接在后面
'''
print(url_for('bookList'))
print(url_for('bookList1',id=3))
return helloWorld
booklists=[
{
"id":1,"name":"book1"},
{
"id": 2, "name": "book2"},
{
"id": 3, "name": "book3"},
{
"id": 4, "name": "book4"}
]
@app.route('/cloudy/bookList/')
def bookList():
return jsonify(booklists)
@app.route('/cloudy/bookList/<int:id>/')
def bookList1(id):
for book in booklists:
print("book:%s" % book)
if id == book['id']:
print("book:%s" % book['id'])
return book
return f"我是第{
id}个"
2、redirect的使用
redirect表示重定向,重定向有分两种,目前只需要了解暂时重定向,这也是flask的默认重定向方式。比如下面这个功能,当启动项目在浏览器中输入http://127.0.0.1:8888/cloudy/detail/2时候,这时候是不能得到bookname的值,这样就会执行到redirect去。如果在浏览器中输入http://127.0.0.1:8888/cloudy/detail/2?name=‘curry’,那么可以获取到bookname就会执行else语句
重定向需要传递第一个参数表示重定向的路由,第二个参数表示重定向的方式code
‘’’
重定向:使用redirect(),接受2个参数,第一个参数location重定向的路由地址,这时候就可以通过url_for()函数得到路由,
第二个参数code表示重定向方式,永久重定向301还是暂时重定向302,默认302
booklists=[
{
"id":1,"name":"book1"},
{
"id": 2, "name": "book2"},
{
"id": 3, "name": "book3"