介绍
- Flask相对于Django而言是轻量级的Web框架。
- 它更轻巧、简洁,通过定制第三方扩展来实现具体功能。
- 最重要的特点是可定制性,通过扩展增加其功能。
- Flask的两个主要核心应用是Werkzeug和模板引擎Jinja2。
安装
pip3 install flask==2.0.1
第一个项目(demo1.py)
#导模块 (导入Flask类)
from flask import Flask
#实例化对象,接收一个Flsak参数
app = Flask(__name__)
# 装饰器的作用是将路由映射到视图函数index (route:路由 "/":地址)
@app.route("/")
def index():
return "hello,world!"
#Flask 应用程序实例的run方法启动web服务器
if __name__ == '__main__':
app.run()
启动运行
python3 demo.py
参数说明
初始化参数
默认参数情况下
app = Flask(__name__)
访问
127.0.0.1:5000/static/1.png
就可以访问到图片
修改参数情况下
app = Flask(__name__,static_folder='aaa')
访问
127.0.0.1:5000/aaa/1.png
才可以访问到图片
应用程序配置参数的三种方法
1.从配置对象中加载 app.config.from_object(配置对象)
from flask import Flask
#默认配置
class DefaultConfig(object):
SELECT_KEY = "sdfsffc47sdff7"
app = Flask(__name__)
app.config.from_object(DefaultConfig)
@app.route("/")
def index():
print(app.config["SELECT_KEY"])
return "hello,world!"
if __name__ == '__main__':
app.run()
2.从配置文件中加载 app.config.from_pyfile(配置文件)
from flask import Flask
app = Flask(__name__)
app.config.from_object(DefaultConfig)
@app.route("/")
def index():
print(app.config["SELECT_KEY"])
return "hello,world!"
if __name__ == '__main__':
app.run()
在同一目录下,新建配置文件setting.py
SELECT_KEY = "sdfsffc47sdff7"
3.从环境变量中加载 app.config.from_envvar('环境变量名')
第一步,配置环境变量。
在Linux中设置和配置环境变量方式如下:
export 变量名=变量值 # 设置echo $变量名 # 读取
第二步,在flask中写入代码
from flask import Flask
app = Flask(__name__)
app.config.from_envvar("PROJECT_SETTING", silent=True)
@app.route("/")
def index():
print(app.config["SELECT_KEY"])
return "hello,world!"
if __name__ == '__main__':
app.run()
注意:只可在终端中运行。
关于 silent 的说明: 表示系统环境变量中没有设置相应值时是否抛出异常
- False 表示不安静的处理,没有值时报错通知,默认为False
- True 表示安静的处理,即时没有值也让Flask正常的运行下去
app.run参数
指定运行的主机
IP
地址,端口,是否开启调试模式
app.run(host="0.0.0.0", port=5000, debug = True)
关于 DEBUG 调试模式
- 程序代码修改后可以自动重启服务器
- 2在服务器出现相关错误的时候可以直接将错误信息返回到前端进行展示
开发服务器启动方式
from flask import Flask
app = Flask(__name__)
app.config.from_envvar("PROJECT_SETTING", silent=True)
@app.route("/")
def index():
return "hello,world!"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5001, debug=True)
终端启动方式
也可以选择切换地址和端口