Python全栈之Flask 简介( 二 )


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,尖括号中冒号后面的内容是动态的 。
 
效果如下:
 
Python全栈之Flask 简介

文章插图
 
 
返回状态码示例:
 
Python全栈之Flask 简介

文章插图
 
 
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()接收的参数为异常状态码 。视图函数的参数,返回的是错误信息 。
 
Python全栈之Flask 简介

文章插图
 
 
重定向redirect示例:
from flask importFlask,redirectapp = Flask(__name__)@app.route('/')def hello_world():   return redirect('https://www.baidu.com')if __name__ == '__main__':   app.run()效果如下:
Python全栈之Flask 简介

文章插图
 
这里再介绍一下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方法相同,但没响应体
默认情况下,Flask路由响应GET请求 。但是,可以通过为route()装饰器提供方法参数来更改此首选项 。
为了演示在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"/>

 
loginok.html
【Python全栈之Flask 简介】<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><h1>hello {{ name }}</h1></body></html>


推荐阅读