资料:
官方文档:https://dormousehole.readthedocs.io/en/latest/quickstart.html#id2
中文文档杂:https://www.kancloud.cn/hartnett/flask
1.安装
sudo pip install virtualenv
pip install Flask
。。。。
2.极简例子
from flask import Flask
app = Flask(__name__)
@app.route('/upload', methods=['GET', 'POST'])
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
3.什么是flask
Flask 是一个 web 框架。也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序。也就是说使用了flask 可以更好的配置处理以及提供的路由。render_template提供了跳转web页面的能力。
4.配置的三种方式
4.1 app.config.from_object 函数对象
config.py的代码:
import os
BASEDIR = os.path.abspath(os.path.dirname(__file__))
class Config:
"""base config"""
SECRET_KEY = os.environ.get('SECRET_KEY') or 'secret key'
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
SQLALCHEMY_TRACK_MODIFICATIONS = True
FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')
FLASKY_MAIL_SENDED = 'jianghan@julanling.com' # 发件人地址
FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]' # 邮件主题前缀
class ProductionConfig(Config):
"""运行环境配置"""
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(BASEDIR, 'data.sqlite')
......
config = {
'development': DevelopmentConfig,
'testing': ProductionConfig,
'production': ProductionConfig,
'default': DevelopmentConfig
}
2、利用Flask类,实例app,并把自定义配置传进去。
如下app.py:
# __name__是本文件名字,
# Flask类里面,会根据此名字,找到app.py所在目录,即默认为根目录。
app = Flask(__name__)
app.config.from_object(config['testing'])
总结:
app.config.from_object('settings.py')#使用模块的名字
#也可以在引用之后直接传入对象
import settings
app.config.from_object(settings)
4.2 app.config.from_pyfile 配置文件
使用文件名字加载,不局限于.py。直接传入名字就行了
app.config.from_pyfile('settings.py',silent=True)
#默认当配置文件不存在的时候抛出异常,
#使用silent=True的时候只是会返回False,但是不抛出异常
4.3 app.config.from_envvar 环境变量
$ export SETTINGS='settings.py'
app.config.from_envvar('SETTINGS')