0.Flask简介
Flask是python三大框架之一,
Flask流行的原因,可以分为以下几点:
- 微框架,简洁,只做他需要做的,给开发者提供了很大的扩展性
- Flask和相应的插件写得很好,用起来很爽
- 开发效率非常高,比如使用
SQLAlchemy
的ORM
操作数据库 - 使用Flask开发数据库的时候,具体是使用
SQLAlchemy
还是MongoEngine
- 把默认的
jinja2
模板引擎替换成其他模板引擎都是非常容易的
一.安装Flask
pip install flask
(我这里使用的Flask版本是2.0.1)
二.第一个Flask程序
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
if __name__ == '__main__':
# 运行本项目,host=0.0.0.0可以让其他电脑也能访问到该网站,
#port指定访问的端口。默认的host是127.0.0.1,port为5000
app.run(host='0.0.0.0',port=9000,debug=True)
#开启debug模式
注:
1.需要注意的,只能在开发环境开启DEBUG模式,因为DEBUG模式会带来非常大的安全隐患
2.app.run这种方式只适合于开发,如果在生产环境中,应该使用Gunicorn或者uWSGI来启动
2.配置文件
Flask
项目的配置,都是通过app.config
对象来进行配置的。比如要配置一个项目的SECRET_KEY
,那么可以使用app.config['SECRET_KEY']="xxx"
来进行设置,在Flask
项目中,有四种方式进行项目的配置:
2.1 直接硬编码:
app=Flask(__name__)
app.config['SECRET_KEY']="xxx"
2.2
因为app.config
是flask.config.Config
的实例,而Config
类是继承自dict,因此可以通过update
方法
app.config.update(
DEBUG=True,
SECRET_KEY='...'
)
2.3
如果你的配置项特别多,你可以把所有的配置项都放在一个模块
的方式进行配置,假设有一个settings.py
模块,专门用来存储配置项的,此时你可以通过app.config.from_object()
方法进行加载,并且该方法既可以接受模块的字符串名称,也可以模块对象:
#1.通过模块字符串
app.config.from_object('settings')
#2.通过模块对象
import settings
app.config.from_object(settings)
2.4
也可以通过另外一个方法加载,该方法就是app.config.from_pyfile()
,该方法传入一个文件名,通常是以.py结尾的文件,但也不仅限于只使用.py后缀的文件
app.config.from_pyfile('settings.py',silent=True)
# silent=True表示如果配置文件不存在的时候不抛出异常,默认是为False,会抛出异常。