Flask 的介绍 Flask 是一款发布于 2010 年非常流行的 Python Web 框架。 特点 1 微框架、简洁,给开发者提供了很大的扩展性。 2 Flask 和相应的插件写得很好,用起来很爽。 开发效率非常高,比如使用 SQLAlchemy 的 ORM 操作数据库可以节省开发者大量书写 sql 的时 间。 3 Flask 的灵活度非常之高,他不会帮你做太多的决策,很多都可以按 照自己的意愿进行更改。 Extensions — Flask Documentation (2.1.x) (palletsprojects.com) 官网文档 Flask-SQLalchemy :操作数据库; Flask-script :插入脚本; Flask-migrate :管理迁移数据库; Flask-Session : Session 存储方式指定; Flask-WTF :表单; Flask-Mail :邮件; Flask-Bable :提供国际化和本地化支持,翻译; Flask-Login :认证用户状态; Flask-OpenID :认证; Flask-RESTful :开发 REST API 的工具; Flask-Bootstrap :集成前端 Twitter Bootstrap 框架; Flask-Moment :本地化日期和时间; Flask-Admin :简单而可扩展的管理接口的框架
第一个flask程序
app = Flask(__name__)
@app.route("/")
def index():
return "hello world"
if __name__ == '__main__':
app.run()
提示
如果想在同一个局域网下的其他电脑访问自己电脑上的
Flask
网
站,需要设置
host='0.0.0.0'
才能访问得到
通过命令运行
flask run
-
h
0.0.0.0
-
p
8000
相应的命令
Debug模式与配置参数加载
@app.route('/')
def hello_world():
a = 1
b = 0
c = a/b
return 'Hello World!'
if __name__ == '__main__':
app.run()
开启debug模式
app.run(debug = True)
通过修改配置参数 configapp.config.update(DEBUG=True) # app.config['DEBUG'] = True app.run() 123通过 mapping 加载
app.config.from_mapping({'DEBUG':True})
app.run()
通过配置对象设置
config
class Config: DEBUG = True app.config.from_object(config) app.run()通过配置文件设置 config URL与函数的映射(动态路由)
URL 路径参数 比如,有一个请求访问的接口地址为 /users/11001 ,其中 11001 实际上为 具体的请求参数,表明请求 11001 号用户的信息。 此时如何从 url 中提取出 11001 的数据?
@app.route('/users/')
def user_info(user_id):
print(type(user_id))
return 'hello user{}'.format(user_id)
其中
@app.route('/users/') 2 def user_info(user_id):
print(type(user_id))
return f'正在获取 ID {user_id} 的用户信息' 567 @app.route('/users/') def user_info(user_id):
print(type(user_id))
return f'hello user {user_id}'
自定义转换器
from werkzeug.routing import BaseConverter
class MobileConverter(BaseConverter):
"""
手机号格式
"""
regex = r'1[3-9]d{9}'
to_python 在转换器类中,实现 to_python(self,value) 方法,这个方法的返回值,将会 传递到 view 函数中作为参数 to_url 在转换器类中,实现 to_url(self,values) 方法,这个方法的返回值,将会在 调用 url_for 函数的时候生成符合要求的 URL 形式
PostMan的使用
Postman 一款非常流行的 API 调试工具。其实,开发人员用的更多。 因为测试人员做接口测试会有更多选择,例如 Jmeter 、 soapUI 等。 不过,对于开发过程中去调试接口, Postman 确实足够的简单方 便,而且功能强大
from flask import Flask,request
app = Flask(__name__) 45 @app.route('/') 6 def index():
wd = request.args.get('wd') 8 ie = request.values.get('ie') 9 return f"Hello! {wd} == {ie}"
if __name__ == '__main__':
app.run(debug=True)
上传文件
from flask import request
@app.route('/upload', methods=['POST'])
def upload_file():
f = request.files['pic'] # with open('./demo.png', 'wb') as
new_file:
# new_file.write(f.read())
f.save('./demo.png')
return '上传成功!'



