Flask学习笔记(一)-最小实例+路由
一、Flask说明
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
二、使用步骤
Flask 环境
环境搭建如下(示例):
1.推荐使用虚拟环境
virtualenv -p [python安装路径] [虚拟环境名]
windows就用where python找安装路径,linux用whereis python3
2.虚拟环境搭建好了就下载flask包
pip3 install flask
觉得官网慢就在后面加 -i [国内源]
三、最小的flask应用实例
1 2 3 4 5 6 7 8 9 10 11 | from flask import Flask app = Flask(__name__) @app.route( '/' ) def hello_world(): return 'Hello World!' if __name__ == '__main__' : app.run() |
1、将代码保存为app.py文件,然后使用python命令运行该脚本
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
2.打开浏览器访问http://127.0.0.1:5000/,浏览页面上将出现Hello World!。
3、端口号默认使用5000, 你也可以改成其他端口号,很随意,只要不超过65535即可,但是要注意,不要选择那些已经被其他服务使用的端口号,否则会报错
上面的服务,我们可以修改成
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1122)
4、自动加载技术--reload(自动加载技术会监测项目里文件的修改情况,一旦发现文件有修改,就会重新加载这个文件,相当于重新import这个模块,这样,你的每一次改动都会在保存后生效而不需要你重启服务)
1 2 | if __name__ == '__main__' : app.run(debug=True) |
四、Flask路由
不同的请求被路由到不同处理函数上,这个函数称之为视图。路由保存了URL和处理函数之间的映射关系,映射关系的建立是通过route装饰器完成的
转换器 | 说明 |
---|---|
int | 接受整数 |
float | 接受浮点数 |
path | 接受带斜线的path |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | from flask import Flask,request app=Flask(__name__) @app.route( '/hello' ) def hello_world(): return "hello" @app.route( '/books' ) def book(): return "books" #转换成int类型 @app.route( '/book/<int:id>/price' ) def price(id): return str(id) # 不指定转换器 @app.route( '/book/<name>/author' ) def author(name): return name #转换成float类型 @app.route( '/book/price-ge/<float:price>' ) def books_by_price(price): return str(price) #转换成path(接路径) @app.route( '/book/<path:book_info>' ) def books_by_path(book_info): return book_info #设置get或者post方法 @app.route( '/users' ,methods=[ 'CET' , 'POST' ]) def users(): if request.method== 'GET' : return 'get' if request.method== 'POST' : return 'post' return 'ok' if __name__ == '__main__' : app.run(debug=True) |
启动服务,一次在浏览器里访问下面的URL来体会转换器的作用
- http://127.0.0.1:5000/book/python/author
- http://127.0.0.1:5000/book/13/price
- http://127.0.0.1:5000/book/price-ge/22.3
- http://127.0.0.1:5000/book/2019/09/sales
- http://127.0.0.1:5000/users
设置method
http协议中,有很多种请求方法,关于这方面的知识,
一个URL,我们可以使用不同的方法来请求,在创建路由规则时,我们可以指定这个URL支持哪些请求方法
@app.route('/users', methods=['GET', 'POST'])
def users():
return 'ok'
在route装饰器中设置methods,如果不设置该参数,则默认支持GET方法。
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/16709638.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析