from flask import Flask #flask 类接受一个__nmae__ 参数 app = Flask(__name__) #装饰器的作用事将路由映射到函数中 @app.route(‘/‘) def index(): return "hello word" #falsk 应用程序run启动web应用程序 if __name__ == ‘__main__‘: app.run()
Flask 程序实例在创建的时候,需要默认传入当前 Flask 程序所指定的包(模块),接下来就来详细查看一下 Flask 应用程序在创建的时候一些需要我们关注的参数:
__name__
就可以/ + static_folder
static
templates
eg:
app = Flask(__name__, static_url_path=‘/url_path_param‘, static_folder=‘folder_param‘)
对于Flask对象初始化参数仅仅设置的是Flask本身的属性,比如:
等等。
应用程序配置参数设置的是一个Web应用工程的相关信息,比如:
等等
集中管理项目的所有配置信息
Django将所有配置信息都放到了settings.py文件中,而Flask则不同。
Flask将配置信息保存到了app.config
属性中,该属性可以按照字典类型进行操作。
app.config.get(name)
app.config[name]
主要使用以下三种方式:
1:从配置对象中加载——app.config.from_object()
class DefaultConfig(object): """默认配置""" SECRET_KEY = ‘TPmi4aLWRbyVq8zu9v82dWYW1‘ app = Flask(__name__) app.config.from_object(DefaultConfig) @app.route("/") def index(): print(app.config[‘SECRET_KEY‘]) return "hello world"
2:从配置文件中加载——app.config.from_pyfile()
新建一个配置文件settting.py
SECRET_KEY = ‘TPmi4aLWRbyVq8zu9v82dWYW1‘
flask 应用程序中
app = Flask(__name__) app.config.from_pyfile(‘setting.py‘) @app.route("/") def index(): print(app.config[‘SECRET_KEY‘]) return "hello world"
3:从环境变量中加载
在Linux中设置环境变量的方式如下
export 变量名=变量值 # 设置 echo $变量名 # 读取 # 例如 export ITCAST=python echo $ITCAST
Flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息,其使用方式为
app.config.from_envvar(‘环境变量名‘)
环境变量的值为配置文件的绝对路径
先在终端中执行如下命令
export PROJECT_SETTING=‘~/setting.py‘
再运行如下代码
pp = Flask(__name__) app.config.from_envvar(‘PROJECT_SETTING‘, silent=True) @app.route("/") def index(): print(app.config[‘SECRET_KEY‘]) return "hello world"
silent:
使用工厂模式创建Flask app,并结合使用配置对象与环境变量加载配置
def create_flask_app(config): """ 创建Flask应用 :param config: 配置对象 :return: Flask应用 """ app = Flask(__name__) app.config.from_object(config) # 从环境变量指向的配置文件中读取的配置信息会覆盖掉从配置对象中加载的同名参数 app.config.from_envvar("PROJECT_SETTING", silent=True) return app class DefaultConfig(object): """默认配置""" SECRET_KEY = ‘itcast1‘ class DevelopmentConfig(DefaultConfig): DEBUG=True # app = create_flask_app(DefaultConfig) app = create_flask_app(DevelopmentConfig) @app.route("/") def index(): print(app.config[‘SECRET_KEY‘]) return "hello world"
app.run(host="0.0.0.0", port=5000, debug = True)
关于DEBUG调试模式
原文:https://www.cnblogs.com/Live-up-to-your-youth/p/14872623.html