一些废话
Flask 是一个现在很流行的 Python 实现的 Web 开发微框架。之所以说是微框架,是因为Flask只保留着构建web服务器的核心,不会有其他的东西但是却易于扩展,可以是有很多的库和框架;一个通俗一点的比方:Flask就是插线板,上面可以插着任何一个电器,实现任何一种功能。
初始化一个最小的web服务
项目中添加Flask框架
pip install Flask
初始化一个web服务
from flask import Flask
# 实例化Flask对象,传的参数默认使用__name__
app = Flask(__name__)
"""定义视图函数"""
# 通过装饰器给视图函数定义路由,从而可以通过http访问到
@app.route('/flaskapp')
# 视图函数内容
def falsk_app():
return 'This is a flask app'
if __name__ == '__main__':
"""启动web服务器"""
app.run()
以上,一个最小的web服务的构建,显示效果如下:
注意
- 通过装饰器定义路由地址时,同一种地址有两种形式: @app.route('/flaskapp') 和 @app.route('/flaskapp/')
- 这里涉及到一个重定向的问题,后者可以兼容地址后面加斜杠的情况,当输入的是没斜杠的会自动重定向到有斜杠的页面;而前者不能支持地址结尾有斜杠的情况。(参考Flask文档:唯一URL规则)
PS: 当路由配置的地址从结尾带斜杠改成不带斜杠时,需要清除浏览器缓存。
另一种路由注册的方法也能达到相同的效果
from flask import Flask
app = Flask(__name__)
def falsk_app():
return 'This is a flask app'
app.add_url_rule('/flaskapp', view_func=falsk_app)
if __name__ == '__main__':
app.run()
区别:
- 如果使用基于函数的视图则使用@app.route()装饰器更方便。
- 如果使用基于类的视图,则只能使用Flask内置的add_url_rule方法。
app.run常用参数
if __name__ == '__main__':
app.run(
host='0.0.0.0', # 主机,默认为127.0.0.1; 当设置0.0.0.0时,允许外网访问
port=80, # 端口号,默认为5000
debug=True # 调试模式,默认关,开启式可以监听代码自动重启,影响性能,生产环境下不开启
)