Flask 是一个使用 Python 编写的轻量级 web 应用框架.
一, 安装 Flask
以管理员身份, 打开命令提示符窗口, 输入下面命令
py -3 -m pip install flask
这个命令会连接到 PyPI 网站下载和安装 Flask 模块, 以及 Flask 依赖的几个模块: Werkzeug,MarkupSafe,Jinja2,itsdangerous,click.
安装完成后, 在命令提示符窗口最后部分可以看到:
- Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, click, flask
- Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 flask-1.0.3 itsdangerous-1.1.0
二, 创建一个 hello world 的最小 Web 应用
1, 创建一个 hello.py, 内容如下
- # 导入 flask 模块的 Flask 类
- from flask import Flask
- #__name__为当前活动模块的名称
- App = Flask(__name__)
- # 设置路由
- @App.route('/')
- def hello() -> str:
- return 'Hello World!'
- """run() 有 3 个可选参数
- host 主机, 默认为 127.0.0.1
- port 端口号, 默认 5000
- debug 是否开启调试模式, 默认为 False, 如设为 True 则修改代码会自动重启
- """
- App.run()
在命令提示符窗口中定位到 hello.py 所在目录, 并执行命令 py -3 hello.py
- D:\projects\python>py -3 hello.py
- * Serving Flask App "hello" (lazy loading)
- * Environment: production
- WARNING: This is a development server. Do not use it in a production deployment.
- Use a production WSGI server instead.
- * Debug mode: off
- * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
表示已经启动了一个 Web 应用, 调试模式未开启, 地址为 http://127.0.0.1:5000, 按 CTRL+C 可以退出 Web 应用.
3, 在浏览器输入 http://127.0.0.1:5000
可看到浏览器显示 Hello World!
同时在刚才命令提示符窗口可看到
127.0.0.1 - - [23/Jun/2019 09:31:55] "GET / HTTP/1.1" 200 -
三, 路由配置
在 URL 和函数之间建立联系的操作被称之为路由.
路由支持动态名称, 规则如下:
- <id>
- : 默认接受的类型是 str
- <string:id>
- : 指定 id 的类型为 str, 不能包含路径分隔符 /
- <int:id>
- : 指定的 id 类型是整数
- <float:id>
- : 指定 id 的类型为浮点数 (四舍五入, 且不能接收整数类型)
- <path:path1>
- : 指定接收的 path 为任何非空字符串, 可包含路径分隔符 /
使用例子:
- from flask import Flask
- App = Flask(__name__)
- @App.route('/getStr/<id>')
- def getStr(id) -> str:
- """匹配 str 类型的 id 值, 如 / getStr/1"""
- return 'id: %s' %id
- @App.route('/getInt/<int:id>')
- def getInt(id) -> str:
- """匹配 int 类型的 id 值, 如 / getInt/1"""
- return 'id: %d' %id
- @App.route('/getFloat/<float:id>')
- def getFloat(id) -> str:
- """匹配 float 类型的 id 值, 如 / getFloat/1.053"""
- return 'id: %.2f' %id
- @App.route('/getPath/<path:path>')
- def getPath(path) -> str:
- """匹配非空字符, 一般匹配 url 路径值, 如 / getPath/test/1"""
- return 'path: %s' %path
- App.run(debug = True)
来源: http://www.bubuko.com/infodetail-3101129.html