推荐环境:pycharm
直接看一个最简单的实例,
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello world!"
if __name__ == "__main__":
app.run()
请先将这个程序跑起来,跑起来之前,需要你提前安装flask模块,在pycharm环境中安装时非常方便的,可以使用pip直接安装使用:
pip install flask
先看下跑起来程序的实例:
在Pycharm执行后:
此时按住ctrl键,可以点击这个链接,程序会打开默认浏览器的一个界面,根据实例程序返回如下:
可以看到,这个路径所路由到的一个页面中显示了在python代码中的Hello world!,接下来再重新解析一下这段代码各条语句的含义。
- 先看程序第一句:
from flask import Flask
这句话就是从安装的flask包中导入了一个Flask类,这也是后面构建Flask Web程序的基础。
- 第二句:
app = Flask(__name__)
这句代码通过将 __name__ 这个参数传递给Flask类的构造函数,创建了一个程序实例,实例名就叫 app ,也因此创建了一个Flask集成的开发Web服务器。Flask用 __name__ 这个参数决定程序的根目录,以便程序能够找到相对于程序根目录的资源文件位置,比如一些静态文件等。
- 接着是第3,4,5句:
@app.route("/")
def index():
return "Hello World!"
再解释这几句之前,我们需要知道:Web浏览器把请求发送给Web服务器,Web服务器再把请求发给Flask程序实例,那么程序实例就需要知道对每个URL请求应该运行哪些代码。
那这样看,上线三行代码的意思就是:如果浏览器需要访问服务器程序的这个地址(根地址)("/"),那么Flask程序实例就会执行定义的 index() 这个函数,从而实现这个函数的功能,即返回文本 "Hello World!"
比如,假设我们部署程序的服务器域名为 www.hello.com ,当我们在浏览器访问http://www.hello.com(即根地址)时,会触发Flask程序执行 index()这个函数,返回 "Hello World! "。这个函数的返回值称为 响应 ,是客户端接收到的内容。
穿插一句:如果此时我们在浏览器访问http://www.hello.com/plan时,程序会返回 404 错误,因为Flask程序并没有对这个URL指定处理的函数,所以会提示404找不到页面。
- 再看最后两句:
if __name__ == "__main__":
app.run()
这两句的意思是,当我们运行该脚本的时候(第一句),启动Flask集成的开发Web服务器(第二句)。默认情况下,该服务器会监听本地的5000端口,如果想要改变端口,也可以在 run() 函数中传入 "port = 端口号" ,另外,如果要支持远程,需要传入 "host = 0.0.0.0" ,以及调试模式,如下:
app.run(host = '0.0.0.0', port=8123, debug=True)
这段服务器程序一旦启动,程序便会进入轮询状态,等待并处理请求。轮询会一直运行,直到程序被终止。