app.run(host, port, debug, options)
- host:监听的主机名
- post:监听的主机端口,默认5000
- debug:调试模式,默认false,设置为frue则显示调试信息
- options:要转发到底层的werkzeng服务器
给路由传参示例:
from flask importFlaskapp = Flask(__name__)@app.route('/id/<int:idn>')def hello_world(idn): return 'HelloWorld! %d' %idnif __name__ == '__main__': app.run()
路由传递的参数默认当做string处理,这里指定int,还支持float,path,尖括号中冒号后面的内容是动态的 。
效果如下:
文章插图
返回状态码示例:
文章插图
abort函数:
如果在视图函数执行过程中,出现了异常错误,我们可以使用abort函数立即终止视图函数的执行 。通过abort函数,可以向前端返回一个http标准中存在的错误状态码,表示出现的错误信息 。
使用abort抛出一个http标准中不存在的自定义的状态码,没有实际意义 。如果abort函数被触发,其后面的语句将不会执行 。其类似于python中raise 。
from flask importFlask,abortapp = Flask(__name__)@app.route('/id/<int:idn>')def hello_world(idn): abort(403) return 'HelloWorld! %d' %idn, 888if __name__ == '__main__': app.run()
在Flask中通过装饰器来实现捕获异常,errorhandler()接收的参数为异常状态码 。视图函数的参数,返回的是错误信息 。
文章插图
重定向redirect示例:
from flask importFlask,redirectapp = Flask(__name__)@app.route('/')def hello_world(): return redirect('https://www.baidu.com')if __name__ == '__main__': app.run()
效果如下:文章插图
这里再介绍一下url_for(),url_for()函数对于动态构建特定函数的URL非常有用 。该函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分 。
如下:
@app.route('/user/<name>')def hello_user(name): if name=='admin': return redirect(url_for('hello_admin')) else: return redirect(url_for('hello_guest',guest =name))
HTTP方法:Http协议是万维网中数据通信的基础 。在该协议中定义了从指定URL检索数据的不同方法 。
方法介绍:
- GET:以未加密的形式将数据发送到服务器获取响应内容
- POST: 用于将html表单数据上传到服务器
- PUT:用上传的内容替换目标资源的数据
- DELETE:删除由URL给出的目标资源的数据
- HEAD: 和GET方法相同,但没响应体
为了演示在URL路由中使用POST方法,首先让我们创建一个HTML表单,并使用POST方法将表单数据发送到URL 。
login.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head> <body> <form action = "http://localhost:5000/login"method = "post"> <p>Enter Name:</p> <p><input type = "text" name = "nm"/></p> <p><input type = "submit" value =https://www.isolves.com/it/cxkf/yy/Python/2020-07-01/ "submit"/>