最基本框架代码
from flask import Flask
'''
实现Flask基本程序
步骤:1 导入Flask类2 创建Flask类的实例对象3 定义路由和视图函数4 启动服务器'''
app=Flask(__name__)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':app.run()
运行结果:
配置对象
1 从配置对象中加载
from flask import Flask
#配置文件加载;字典形式存储配置信息
#三种形式
#1 从配置对象中加载
class DefaultConfig(object):MYSQL_URL='mysql address'REDIS_URL='redis address'app=Flask(__name__)
# 获取配置对象的配置信息
app.config.from_object(DefaultConfig)@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()
运行结果:
2 从配置文件中加载
from flask import Flask#配置文件加载;字典形式存储配置信息
#三种形式
#2 从配置文件中加载app=Flask(__name__)
# 获取配置文件的配置信息
app.config.from_pyfile('settings.py')@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息print(app.config.get('SECRET_KEY'))return 'hello world'if __name__=='__main__':app.run()
运行结果:
这种方法的配置文件可以不是py文件,而且例如可以把文件桌面上,如ini格式文件专门存放配置信息
3 从环境变量中加载
from flask import Flask#配置文件加载;字典形式存储配置信息
#三种形式
#2 从配置文件中加载
#3 从环境变量中加载app=Flask(__name__)
# 获取配置文件的配置信息,可以加载不是py格式的文件
# ini初始化文件,里面保存的是配置信息
# app.config.from_pyfile('settings.ini')
app.config.from_envvar('SET')@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息# print(app.config.get('SECRET_KEY'))#从环境变量文件中获取配置信息print(app.config.get('SECRET_KEY'))return 'hello world'if __name__=='__main__':app.run()
设置环境变量并且设置配置文件路径
第一种配置方法
#demo2_config.py
from flask import Flask
from set import DefaultConfig,ProductionConfigapp=Flask(__name__)
app.config.from_object(DefaultConfig)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':app.run()
#set.py
class DefaultConfig(object):MYSQL_URL='mysql address'REDIS_URL='redis address'
# 定义其他模式下的配置信息,生产模式,开发模式
class ProductionConfig(DefaultConfig):MYSQL_URL='production mysql address'REDIS_URL='production redis address'
实际项目中用法(第一种和第三种)
#demo3_project.py
from flask import Flask
from set import DefaultConfig, ProductionConfigdef create_app(config_name):app=Flask(__name__)app.config.from_object(config_name)return appapp=create_app(DefaultConfig)@app.route("/")
def hello():print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()#demo3_project.py
from flask import Flask
from set import DefaultConfig, ProductionConfigdef create_flask_app():app=Flask(__name__)app.config.from_envvar('SET',silent=True)return appdef create_app(config_name):app=create_flask_app()app.config.from_object(config_name)return appapp=create_app(ProductionConfig)@app.route("/")
def hello():print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()
设置run方法
from flask import Flaskapp=Flask(__name__)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':'''run函数可以传入参数debug等于True表示可以自动跟踪代码的变化,定位错误信息host/port'''# app.run()# app.run(debug=True)app.run(port=5001)