第一个 Flask 应用程序
发布时间:2023-06-29 14:11:15 所属栏目:教程 来源:
导读:前面的小节中我们已经讲解了 Web 框架,开发环境搭建以及特别重要的装饰器等等知识。那么从这节课开始我们就要正式开始 Flask 框架的学习了。
本节课我们会创建一个最简单的 Flask 程序,通过这个程序我们会了解到
本节课我们会创建一个最简单的 Flask 程序,通过这个程序我们会了解到
前面的小节中我们已经讲解了 Web 框架,开发环境搭建以及特别重要的装饰器等等知识。那么从这节课开始我们就要正式开始 Flask 框架的学习了。 本节课我们会创建一个最简单的 Flask 程序,通过这个程序我们会了解到 Flask 框架的基本应用。 1. 安装 flask Flask 是一个 Web 框架,使用它首先需要安装: $ pip3 install flask 安装完毕后,在 Python 的交互模式下,尝试导入 Flask 模块: >>> import flask 如果 import 没有报错,表示安装成功 2. 一个最小的 Flask 应用 确定安装成功后我们创建一个 minimal.py 文件,并写入下面的代码: from flask import Flask app = Flask(__name__) 首先,导入类 flask.Flask,实例化创建一个 Flask 应用,第一个参数是 Flask 应用的名称。__name__ 是一个标识 Python 模块的名字的变量: 如果当前模块是主模块,那么此模块名字就是 __main__; 如果当前模块是被 import 的,则此模块名字为文件名。 @app.route('/') def hello_world(): return '<b>Hello World</b>' 然后,定义函数 hello_world,它返回一段 html 文本。app.route(’/’) 返回一个装饰器,装饰器来为函数 hello_world 绑定对应的 URL,当用户在浏览器访问这个 URL 的时候,就会触发这个函数,获取返回值。 if __name__ == '__main__': app.run() 如果当前模块是主模块,则变量 __name__ 为 '__main__,此时调用 run() 方法启动 Flask 应用。 在控制台中,Flask 应用输出如下: $ python3 hello.py * Serving Flask app "hello" (lazy loading) * Environment: production Use a production Wsgi server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 127.0.0.1 - - [20/Jul/2020 08:26:47] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [20/Jul/2020 08:26:47] "GET /favicon.ico HTTP/1.1" 404 - 这样,我们就已经搭建好了一个最简单的 Flask 应用。 3. 修改监听地址和端口 上面说到要在浏览器中输入 localhost:5000 才能看到运行效果。其中 localhost 代表本地 IP 地址,你也可以把 localhost 改成 127.0.0.1,效果和 localhost 是一样的。那么 5000 代表什么呢? 其实 5000 是一个端口号,你可以把端口号理解为是门牌号。我们的电脑会为每一个应用程序划分运行区间,每一个运行区间的标识就是端口号,我们可以通过端口号来访问对应的应用程序,这和你在酒店根据门牌号找到房间是一个道理。 默认情况下,Flask 应用程序监听地址 127.0.0.1 和端口 5000。如果你不想让 Flask 程序运行在 5000 端口,也可以通过参数设置可以修改默认的监听地址和端口,比如我们想让 Flask 程序运行在一个比较吉利的端口 8888 上面,可以这样修改代码: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '<b>Hello World</b>' if __name__ == '__main__': app.run(host = '0.0.0.0', port = ) 设定 app.run 的函数参数 host 为 ‘0.0.0.0’,表示监听每一个可用的网络接口;设定 app.run 的函数参数 port 为 8888,表示监听端口 8888。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |